📚
【Let's Encrypt】ACME v2の更新
#SSL #LetsEncrypt #エラー対応
Let's Encryptが自動更新されていなかったので、手動でコマンドを実行したところ下記のようなエラーが発生。
TeraTarm
$ sh /root/lets.sh
Attempting to renew cert from /etc/letsencrypt/renewal/lospec.com.conf produced an unexpected error: urn:acme:error:serverInternal :: The server experienced an internal error :: ACMEv1 Brownout in Progress. ACMEv1 will fully turn off on June 1, 2021. Check https://letsencrypt.status.io/ for more details.. Skipping.
どうやらACMEv1というプロトコルが古いのでバージョンアップしてください、ということのようです。
以下手順に沿って進めていきます。
現在の ACME のバージョン確認
TeraTarm
$ ls -l /etc/letsencrypt/accounts/
(略)
drwx------ 3 root root 4096 7月 22 2018 acme-staging-v01.api.letsencrypt.org
drwx------ 3 root root 4096 7月 22 2018 acme-v01.api.letsencrypt.org
Certbotのバージョンアップ
プロトコルのアップデートを行う前に、Certbot を最新にする必要があります。
現在の Certbot のバージョンを確認し、必要に応じてアップデートを行います。
TeraTarm
# バージョン確認
$ certbot --version
certbot 0.25.1
# アップデート
$ yum update -y --enablerepo=epel certbot
# 最新バージョンになっているか確認
$ certbot --version
certbot 1.11.0
confファイルにACME v2 のサーバを指定
Certbot コマンド実行時に、ACME v2 を参照できるようにするために、
以下の公式サイトを参考にし、ACME v2 (RFC 8555) の 本番用のURLを/etc/letsencrypt/renewal/ドメイン名.conf
の[renewalparams]
セクションに追加します。
Let's Encrypt : ACME プロトコルのアップデート
TeraTarm
$ vi /etc/letsencrypt/renewal/ドメイン名.conf
~(略)~
# Options used in the renewal process
[renewalparams]
authenticator = webroot
account = hogehoge
post_hook = systemctl restart nginx
server = https://acme-v02.api.letsencrypt.org/directory ←ここを追加
manual_public_ip_logging_ok = None
[[webroot_map]]
~(略)~
ACMEv2プロトコルでの証明書更新ができているか確認
上記confファイルに設定を追加後、再度--dry-run
を実行してログを確認してみます。
TeraTarm
$ certbot renew --dry-run
$ less /var/log/letsencrypt/letsencrypt.log
~(略)~
2021-04-07 15:38:17,027:DEBUG:acme.client:Sending GET request to https://acme-staging-v02.api.letsencrypt.org/directory.
~(略)~
2021-04-07 15:38:21,201:DEBUG:certbot._internal.renewal:no renewal failures
~(略)~
GET request to https://acme-staging-v02.api.letsencrypt.org/directory
というように、v02とついたURIに証明書発行のリクエストが行われていれば設定が正しくできています。
問題なさそうだったら--dry-run
抜きでアップデートを実行してください。
Discussion