Let’s encryptのSSL証明書の更新で困らないために
またこの日が来ました。ドメインの変更時にLet’s encrypt でSSL証明書の発行をしてから90日が経過することになります。いつものようにメールにて期限が近づいているという内容で送られてきました。更新のコマンドを実行するだけで良さそうですが毎度のことエラーが出てしまって困っていたので、この機会なので自動かも含めてやっていきたいと思います。
certbot –dry-run を実行
ここでエラーが発生!
produced an unexpected error: Problem binding to port 80: Could not bind to IPv4 or IPv6.. Skipping.
The following certs could not be renewed:
こちらのエラーに関してはすぐに解決をすることができました。エラーの原因は、certbotを実行時にapatcheを起動していたため、証明書の更新時にはapatcheを停止しておく必要があるようです。
更新時にapatcheを停止して更新後に再起動するように
certbot renew --dry-run --pre-hook "systemctl stop httpd" --post-hook "sudo systemctl restart httpd"
を実行。–pre-hookのあとに実行したいコマンドを書く。–post-hookで終わったらapatcheの再起動をしています。
更新の自動化
crontabの設定
今回更新に使ったコマンドをシェルファイルに書き込んで、シェルファイルを定期実行することにしました。
0 3 * * * /etc/letsencrypt/letsencrypt-renew.sh
こちらの記述によって、毎日3時にシェルが叩かれ実行されます。仕様上、期限が近づかないと更新ができないようです。
ディスカッション
コメント一覧
まだ、コメントがありません