実現したいこと
- lets encryptのSSL証明書の更新を自動化する
独自ドメインのサイトをhttps化したのですが、3ヶ月で期限が切れてしまうようです。
手動で更新していると忘れることがあるので、早めに自動更新するように変更します。
その手順をシェアというかメモというか記事にしたいと思います。
cronを使ってやるのでcronの書き方もまとめました。
作業環境
- OS
- CentOS7
- webサーバー
- Nginx
- SSL
- Let's Encrypt
参考サイト
手順
- certbotのページへアクセスする
- cronへ登録する
1. certbotのページへアクセスする
certbotのページ下部にある
8.Test automatic renewalに書いてあるコマンドを実行します。
sudo certbot renew --dry-run
補足説明
- --dry-run:「更新」または「証明書のみ」をテスト実行。証明書をディスクに保存しない
certbot(Letsecnrypt)コマンド・オプションを真面目に理解するより抜粋
コマンドを実行して成功になれば更新はできるので、cronに登録していきます。
Congratulations, all simulated renewals succeeded:
/etc/letsencrypt/live/your_domain_name.com/fullchain.pem (success)
2. cronへ登録する
cronとは定期的に実行したいコマンドなどを登録することで、自動実行してくれる便利なものです。
lets encryptの証明書は3ヶ月ごとに更新が必要なため3ヶ月ごとに自動実行するよう設定していきます。
0 0 1 */3 * certbot renew
#3ヶ月ごと、1日0時0分にcertbot renewコマンドを自動実行します
#3月1日0時0分 6月1日0時0分 9月1日0時0分
cron書き方
* * * * * [実行コマンド]となっており、左の*から分、時、日、月、曜日となっています
*は全ての時間を設定したことになります。
もし* * * * * [実行コマンド]を登録すると毎分コマンドが実行されることになります。
定期的に実行したい場合は*/[間隔]としてください。
0 0 1 */3 * certbot renewこのコマンドでは、
分→0
時→0
日→1
月→3ヶ月ごと
曜日→月〜日(1~7)の全て
certbot renewを実行する
となります。