(1) Let’s Encryptの証明書の自動更新の手順(Apacheに適用した例で解説)
(1-1) Let’s Encriptで発行した証明書の期限について
(1-2) 自動化に必要なコマンド:renew
(1-3) 自動化の仕組みと設定方法:cron
(1-4) 更新が正常に行えたか?のチェック
(1) Let’s Encryptの証明書の自動更新の手順(Apacheに適用した例で解説)
(1-1) Let’s Encriptで発行した証明書の期限について
Let’s Encryptで発行した証明書は90日間有効ですが、万が一トラブルが起きた時のバッファも考慮して、60日程度での更新が推奨されています。そのため、証明書の状態をチェックして更新する処理を自動化する対応が望まれます。
(1-2) 自動化に必要なコマンド:renew
certbotのrenewコマンドは現在インストールされている証明書をチェックし、有効期限が残り30日未満の場合は更新を行ってくれます。このrenewコマンドには「–dry-run」というオプションがあり、これにより更新のシミュレーションをする事ができます。
$ sudo certbot renew --dry-run
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - new certificate deployed with reload of apache server; fullchain is /etc/letsencrypt/live/tennis-database.com/fullchain.pem - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ** DRY RUN: simulating 'certbot renew' close to cert expiry ** (The test certificates below have not been saved.) Congratulations, all renewals succeeded. The following certs have been renewed: /etc/letsencrypt/live/tennis-database.com/fullchain.pem (success) ** DRY RUN: simulating 'certbot renew' close to cert expiry ** (The test certificates above have not been saved.) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(1-3) 自動化の仕組みと設定方法:cron
定期的な更新(renew)を自動化するための手段の一つとして、今回は「cron」を使った方法を見ていきます。renewは残り期限が30日未満の場合に更新を行うので、cronによる更新のトライは週次または日次で行っていくのが確実です(※EFFの推奨では1日に2回の更新トライを推奨しており、更に頻度が高い)。
$ sudo vi crontab
②スケジュールの定義
次のスケジュールは1日2回、0時(24時)と12時にrenewを試行する設定です。
0 0,12 * * * certbot renew
(図132)
(1-4) 更新が正常に行えたか?のチェック
更新が上手く行ったかどうか?をチェックするための手段を1つご紹介します。こちらの「SSL Checker」を使う事で、証明書が正常に更新されたか?をテストする事ができます。