Humanity

Edit the world by your favorite way

Let's Encrypt の証明書の有効期限をチェックする Cron 用シェルスクリプト

まぁ certbot-auto renew を定期的に実行すればいいんですが、チェックだけしたいって場合のスクリプト。 Cron で毎日実行する事を想定してます。

追記:切れる前メール通知来るの知りませんでした…

具体例

REPORT_DAYS_AGO はデフォルトで 14 が指定されていますが、実行時に指定した場合、その日数でチェックします。

以下は REPORT_DAYS_AGO=20 として実行した場合の出力です。 example.com の証明書が報告日 (=有効期限の終了日 - REPORT_DAYS_AGO) を迎えているので終了コードは 1 です。

$ sudo REPORT_DAYS_AGO=20 ./check-le-date.sh
========== example.com ==========
有効期限が 2018/09/29 で切れます (残り 20 日)
$ echo $?
1

以下は REPORT_DAYS_AGO=19 として実行した場合の出力です。 まだ報告日を迎えていないので出力はなしで、終了コードは 0 です。

$ sudo REPORT_DAYS_AGO=19 ./check-le-date.sh
$ echo $?
0

スクリプト

趣あふれるスクリプトですが、良かったらどうぞ。

gist.github.com