解决 Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA
今天在使用certbot renew
命令(类似的更新命令)更新Let's Encrypt证书的时候发生如下错误:
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.
Attempting to renew cert (wujuzi.com) from /etc/letsencrypt/renewal/wujuzi.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.
GG了下原因,原来是:由于TLS-SNI-01 challenge存在安全性问题(具体可以参考:2018.01.09 Issue with TLS-SNI-01 and Shared Hosting Infrastructure),Let‘s Encrypt永久禁用了TLS-SNI-01challenge,所以导致了上面的错误。
当然网上也给出了两种解决办法:
第一种办法:升级到最新版的Cetbot
Certbot 0.21.0在2018年1月17日发布了,更新certbot到此版本可以解决问题。
注意:使用操作系统的软件包管理软件安装certbot可能还不能获取最新的certbot 0.21.0,建议使用 certbot-auto安装更新。
官方升级办法:certbot-auto安装更新链接入口
第二种办法:暂时使用旧的cetbot,分两种情况解决此问题。
- 1、如果站点的文件放在nginx管理的目录,执行命令:
sudo certbot --authenticator webroot --webroot-path <webroot> --installer nginx -d <domain>
webroot 换成站点路径;domain换成域名
- 2、站点的文件不是在nginx管理的目录下,如使用proxy_pass代理分发,执行命令:
sudo certbot --authenticator standalone --installer nginx -d <domain> --pre-hook "service nginx stop" --post-hook "service nginx start"
此命令会通过--pre-hook暂时关闭nginx,成功后通过--post-hook启动nginx
如果web服务器为apache,只需要把命令 --installer nginx改为--installer apache