何度かLet’s Encryptでサーバ証明書を作ってきたのですが、毎回うっかり忘れて期限を切らしてばかりいます。
せっかくなのでcronで定期的に更新処理を行うことにします。
証明書の更新に使うサブコマンドは「renew」です。
毎日朝5:30くらいに実行するようにしてみます。
1 |
30 05 * * * root /usr/local/certbot/certbot-auto --webroot -w /var/www/html renew && service h2o reload |
cronはいくつか設定方法がありますが、今回は上記の内容を /etc/cron.d/update-cert に作成しました。
Let’s Encryptはリクエストに対していくつか制限があります。
https://letsencrypt.org/docs/rate-limits/
Certificates per Registered Domain (20 per week)と記載があり、登録済みのドメインごとに1週間に20回までとあります。
たくさんのドメインやサブドメインで運用している場合は注意が必要です。
月に1回とか設定しても良いのでしょうが、非力なマシンなので、万が一そのタイミングで落ちてしまっていると、翌月まで更新されないこともあり得ます。
毎日renewを実行しても、有効期限が近いものだけ自動的に更新され、まだ余裕があるものは更新されない仕組みになっているので、毎日実行しても大丈夫なようです。
force-renewオプションを付けると、この有効期限をみずに更新に行くので危ないです。むやみにこのオプションは使いません。