如何修复 Ubuntu 上的 cron letsencrypt certbot renew(SSL3_GET_SERVER_CERTIFICATE,证书验证失败)?

如何修复 Ubuntu 上的 cron letsencrypt certbot renew(SSL3_GET_SERVER_CERTIFICATE,证书验证失败)?

我有一个使用 letsencrypt 证书运行的 nginx 网络服务器,通过 certbot renew 进行更新。全部在 Ubuntu 14.04 上。自 2021 年 10 月 1 日起,我不断收到来自 cron 的电子邮件,称证书无法续订:

Attempting to renew cert (joov.de) from /etc/letsencrypt/renewal/joov.de.conf produced an unexpected error: ("bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",). Skipping.
All renewal attempts failed. The following certs could not be renewed:
 /etc/letsencrypt/live/joov.de/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)

我该如何修复这个问题而不手动升级一半的系统?

答案1

问题是根证书 DST_Root_CA_X3.crt 已于 2021 年 9 月底到期。

解决方案是禁用此证书。这对我在 Ubuntu 14.04 上有效:

sudo apt-get update
sudo apt-get upgrade
sed -i 's/\(.*DST_Root_CA_X3.crt\)/!\1/' /etc/ca-certificates.conf
update-ca-certificates
certbot renew

该问题/答案在评论中包含提示(实际答案不起作用):

https://stackoverflow.com/questions/69420612/how-can-i-update-my-root-certificates-in-an-ubuntu-14-04-dockerfile

相关内容