我正在使用带有 dns-cloudflare 身份验证器的 certbot 更新我的 letsencrypt 证书。
当我最初设置时,我使用了这个命令:
$ certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/certbot-cloudflare.ini -d dev.newbanking.com
并且它确实有效。(并且它仍然有效。)
当我使用此命令手动更新我的证书时:
$ certbot renew
它也有效。
但是,自动更新不起作用。在系统日志中,我得到了以下信息:
Jul 9 15:00:21 dev systemd[1]: Starting Certbot...
Jul 9 15:00:23 dev certbot[21649]: Renewal configuration file /etc/letsencrypt/renewal/dev.newbanking.com.conf (cert: dev.newbanking.com) produced an unexpected error: 'Namespace' object has no attribute 'dns_cloudflare_credentials'. Skipping.
Jul 9 15:00:23 dev certbot[21649]: 0 renew failure(s), 1 parse failure(s)
Jul 9 15:00:23 dev systemd[1]: certbot.service: Main process exited, code=exited, status=1/FAILURE
Jul 9 15:00:23 dev systemd[1]: Failed to start Certbot.
Jul 9 15:00:23 dev systemd[1]: certbot.service: Unit entered failed state.
Jul 9 15:00:23 dev systemd[1]: certbot.service: Failed with result 'exit-code'.
/etc/letsencrypt/renewal/dev.newbanking.com.conf 文件如下所示:
# renew_before_expiry = 30 days
version = 0.30.0
archive_dir = /etc/letsencrypt/archive/dev.newbanking.com
cert = /etc/letsencrypt/live/dev.newbanking.com/cert.pem
privkey = /etc/letsencrypt/live/dev.newbanking.com/privkey.pem
chain = /etc/letsencrypt/live/dev.newbanking.com/chain.pem
fullchain = /etc/letsencrypt/live/dev.newbanking.com/fullchain.pem
# Options used in the renewal process
[renewalparams]
authenticator = dns-cloudflare
account = <this-value-I-have-obscured>
server = https://acme-v02.api.letsencrypt.org/directory
dns_cloudflare_credentials = /root/certbot-cloudflare.ini
Certbot 版本:
$ certbot --version
certbot 0.30.0
我正在运行 Ubuntu 16.04。
答案1
这个问题解决了。问题是我安装了两个 certbot,一个(最新版本)通过命令行使用,另一个(最旧版本)由计时器触发。
解决方案是删除最旧的版本,然后重新安装最新版本,然后重新安装我的证书。