この記事について
| 環境 | CentOS + certbot-auto |
|---|---|
| 目的 | let’s encrypt の証明書(有効期限90日)を自動更新させる |
| 結果 | renew コマンドをシェルスクリプト化して cron に登録した |
つまずきポイント要約
- 有効期間の残りが30日未満の証明書のみ更新される
- 強制更新は –force-renew
let’s encrypt の導入はこちら
Let’sEncrypt の有効期限は 90日。有効期限が切れる前に自動更新するように設定する必要がある。
certbot-auto の場所を確認
find -name certbot-auto
場所はここだった
./certbot-auto
更新コマンド
sudo ./certbot-auto renew --post-hook "sudo service httpd restart"
更新期間まえだと次のように出る。有効期限も確認できる
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/example.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not yet due for renewal
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following certs are not due for renewal yet:
/etc/letsencrypt/live/example.com/fullchain.pem expires on 2018-10-23 (skipped)
No renewals were attempted.
No hooks were run.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
強制的に更新するなら次のコマンド
sudo ./certbot-auto renew --force-renew --post-hook "sudo service httpd restart"
cronへの登録
certbot-auto の場所を調べる
find -name certbot-auto
シェルスクリプトを用意
#!/bin/sh
# #!で始まる一行目の記述はインタプリタの指定
# シェルスクリプトの最初に書くおまじない
# Let's Encrypt 証明書の更新
sudo /root/certbot-auto renew --post-hook "sudo service httpd restart"
毎日3時2分に実行
2 3 * * * /var/myshellscript/lets_encrypt_renew.sh
有効期間の残りが30日未満の証明書のみ更新される。
後年、この cron 更新で WARNING が出たときの調査はこちら。
