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
スクリプト
趣あふれるスクリプトですが、良かったらどうぞ。