我正在尝试通过下一个命令更新我的 letsencrypt 证书:
./letsencrype-auto renew
但我收到此错误消息:
configuration file /etc/letsencrypt/renewal/domain.conf produced an unexpected error: Namespace object has no attribute 'standalone_supported_challenges'.
我尝试使用创建证书的命令:
./letsencrypt-auto certonly --standalone-supported-challenges tls-sni-01 -d domain
我收到此错误:
unrecognized arguments: --standalone-supported-challenges tls-sni-01
如果我尝试这样做:
./letsencrypt-auto certonly --standalone -d domain
它说:
The requested standalone plugin does not appear to be installed.
我现在不知道如何更新我的证书。
答案1
./letsencrype-auto renew
这应该已经起作用了,应该更新全部证书。
尝试此方法来续订单个域名。
./letsencrypt-auto --apache -d example.com
答案2
根据他们的文档,自动更新功能是在 0.4.0 版本中引入的,并且不使用上面的语法。请参考:
https://letsencrypt.org/getting-started/
从 0.4.0 版本开始,letsencrypt python 客户端支持高级 renew 子命令,该命令尝试使用您最初获取证书时使用的相同设置来更新所有证书。您可以通过运行以下命令进行测试:
letsencrypt renew --dry-run
这将获得测试证书,并且不会在您的系统上留下任何持久更改。如果您喜欢结果,您可以运行:
letsencrypt 更新
如果您想要续订特定证书(而不是所有证书)或调整用于续订的确切参数,则可以使用 letsencrypt certonly 命令执行单个证书的续订,并对设置进行更具体的控制。使用 letsencrypt certonly 时,您可以一次续订单个证书。为要续订的域所涵盖的每个域指定 -d 标志。
答案3
据我记得,该应用程序letsencrypt
已经过时了,因为它certbot
在 2016 年就被重新命名了。
https://www.eff.org/deeplinks/2016/05/announcing-certbot-new-tls-robot
您应该使用certbot
:
当我们这样做的时候:
letsencrypt 客户端无法更新证书的原因之一也可能是由于 ACMEv1 协议将于 2020 年 1 月 1 日到期,因此人们必须切换到支持 ACMEv2 协议的客户端:
https://community.letsencrypt.org/t/end-of-life-plan-for-acmev1/88430
Certbot 确实支持 ACMEv2 协议。
答案4
Let's Encrypt 不再允许使用 TLS-SNI-01 来证明您拥有该域名。
你应该做什么(根据这个问题):https://github.com/certbot/certbot/issues/6984)是从您的配置文件中删除以下行:
standalone_supported_challenges = "tls-sni-01,http-01" # this guy
删除上述行后,您可以开始使用其他身份验证方法,例如 TLS-ALPN-01 验证方法。您可以在此处找到完整的验证方法列表:https://letsencrypt.org/docs/challenge-types/。