[Let’s Encrypt] Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA. エラーの解決方法
Let’s Encrypt で Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA. エラーが発生したときの解決方法をご紹介します。
まず、現在利用している certbot のバージョンを確認します。
$ certbot --version
certbot 0.14.2
$ sudo /usr/bin/certbot renew \\
--renew-hook "/bin/systemctl start nginx"
Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/example.com.conf
-------------------------------------------------------------------------------
Cert is due for renewal, auto-renewing...
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Renewing an existing certificate
Performing the following challenges:
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.
Attempting to renew cert from /etc/letsencrypt/renewal/example.com.conf produced an unexpected error: Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.. Skipping.
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/example.com/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)
certbot のバージョンが古いのが原因なため、certbot をアップグレードすることで解決できます。
sudo apt-get update
sudo apt-get install --only-upgrade certbot
アップグレード後の certbot のバージョンを確認しておきます。
$ certbot --version
certbot 0.31.0
アップグレードしたことで certbot コマンドの option が変わったようです。
Nginx の場合は以下のような option 付きで certbot コマンドを実行することで SSL 証明書を更新完了することができました。
$ sudo certbot \\
--authenticator standalone \\
--installer nginx \\
-d example.com \\
--pre-hook "/bin/systemctl stop nginx" \\
--post-hook "/bin/systemctl start nginx"
注意点としては stop nginx と start nginx するので、数秒程度 Nginx がリクエストを処理できない時間はダウンタイムが発生してしまいます。
もし、The requested nginx plugin does not appear to be installed というエラーが発生した場合、以下の記事を参考にして解決してください。
以上、Let’s Encrypt の SSL 証明書を更新するために certbot をアップグレードした、現場からお送りしました。