letsencrypt 证书更新失败

renewal of letsencrypt certificate fails

我正在使用 debain jessie,certbot 版本 0.9.3-1~bpo8+2。从最近两天开始,我在为我的网站续订证书时开始收到此错误。

Could not bind TCP port 443 because it is already in use by another process on
this system (such as a web server). Please stop the program in question and then
try again.
-------------------------------------------------------------------------------
Attempting to renew cert from /etc/letsencrypt/renewal/www.testsite.com.conf produced an unexpected error: object of type 'NoneType' has no len(). Skipping.

我该怎么办?我对 Letsencrypt 不太熟悉。有人请遮光吗?

只需停止您的网络服务器,然后 运行 再次这样做。如果您使用的是 nginx,请使用 sudo service nginx stop

我还没有找到使用 "zero downtime" 执行此操作的方法,但您可以使用挂钩自动 stop/start nginx,以便您可以使用 cron 处理续订:

certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"

我是apache2爱好者,这里是解决方案

certbot renew --cert-name www.snippetbucket.com --pre-hook "service apache2 stop" --post-hook "service apache2 start"

变得更简单,效果 100%。

现在,所有域引用都在 apache 托管服务器上,自动化过程。

certbot renew --pre-hook "service apache2 stop" --post-hook "service apache2 start"

建议:万一自动化不行,就根据服务器低流量提前安排续费流程。