ssl 如何停止更新letsencrypt/certbot证书?

zlhcx6iw  于 2022-11-14  发布在  其他
关注(0)|答案(6)|浏览(191)

网上有很多关于如何用letsencrypt创建和更新证书的教程,但是我想删除和停止更新我创建的证书(它只是为了测试而创建的)。我如何停止更新一个最初用letsencrypt命令获得的证书(同时继续更新其他证书)?
我没有看到任何人在其他地方问这个问题的任何示例,也没有看到man letsencrypt中的任何命令似乎这样做。
当前我正在使用以下cron作业续订证书:

30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
35 2 * * 1 /bin/systemctl reload nginx
qjp7pelc

qjp7pelc1#

对于certbot,您可以简单地用途:

certbot delete --cert-name mywebsite.com

这将从您的letsencrypt config目录中删除证书和所有相关文件。

wkftcu5l

wkftcu5l2#

操作员除了停止更新外,还希望删除证书,这在其他答案中已涵盖。但是,如果您希望保留证书,但停止未来的更新(例如,如果您已切换到不同的服务器,但正在等待所有DNS更改传播),您可以进入/etc/letsencrypt/renewal并将example.com.conf重命名为example.com.conf.disabled(或者任何其他非.conf名称,或者甚至将其完全删除:

/etc/letsencrypt/renewal/example.com.conf.disabled

您可以通过运行以下命令来验证是否已禁用该功能,如other answer中所述。

sudo certbot renew --dry-run

最后一些有suggested elsewhere,你可以简单地把autorenew = False放在/etc/letsencrypt/renewal/example.com.conf文件的顶部,但这似乎不起作用。(我本来想回复那个帖子给予我的反馈,但他们的论坛在30天后切断评论。
在查看之后,我意识到大部分信息都包含在other answer中,但我想澄清禁用续订而不删除或禁用证书本身的单独用例所需的步骤。

50pmv0ei

50pmv0ei3#

现在似乎没有正式“取消”续订的命令。但是,我发现this thread的一个建议似乎有效。
我尝试运行以下命令,

sudo find /etc/letsencrypt/ -name '*outdated.example.com*'

并且在live/archive/renewal/目录中只找到一个文件。
我也试过跑步,

sudo grep -r /etc/letsencrypt/ -e 'outdated.example.com'

并且仅在renewal/目录的一个文件(即renewal/outdated.example.com.conf)中找到对过期域的引用。
我运行了letsencrypt renew,它在输出中列出了outdated.example.com
然后,我创建了一个目录_renewal_disabled,并将renewal/outdated.example.com.conf移动到该目录中。
我再次运行letsencrypt renew,它在输出中不再列出outdated.example.com
由此,我可以假定我已经“禁用”了证书的续订。

hrirmatl

hrirmatl4#

已更新

请参见答案https://stackoverflow.com/a/47372583/1426788
较新版本的certbot支持通过CLI删除证书

旧答案

要从certbot续订中删除域,您可以删除或移动(更安全)错误的域证书文件,并运行certbot renew --dry-run以确保您已删除过期/无效的配置。

rm -rf /etc/letsencrypt/live/${BAD_DOMAIN}/
rm -f /etc/letsencrypt/renewal/${BAD_DOMAIN}.conf
certbot renew --dry-run

如果这样做有效,您可以继续续订,而无需使用--dry-run进行未来更新。

certbot renew

如果您运行的是nginx或其他服务器,请不要忘记编辑您的配置,以便它们不再指向无效或已删除的证书。
最后,重新启动或重新加载您的服务器配置,您就完成了!

stszievb

stszievb5#

下面提供了一个交互式菜单:

certbot delete

您也可以使用certbot delete --cert-name example.com以非交互方式删除证书,但这似乎是通过正常的授权过程,如果它不能授权您的域,则会失败。上面的交互式命令会删除所有内容,而不尝试授权。

sdnqo3pr

sdnqo3pr6#

以下是我的做法:
1.我跑了

certbot renew

并指出哪些域没有续订或有问题
1.我创建了一个

/etc/certbot/disabled

用于保存禁用(但未删除)域的目录
1.根据具体情况,我将所有不需要的***.conf文件从/etc/certbot/renewal移动到/etc/certbot/disabled**

#cd /etc/certbot/renewal
#mv <disabled_domain> ../disabled

1.然后我解决了所有特殊情况:
4A)默认的“catchall”服务器网站

#certbot --apache -d <server.catchall.url>

4 B)邮件服务器
i)停止httpd

#service httpd stop

ii)发出certbot命令以生成证书

#certbot certonly --standalone -d <mail.server.domain>

iii)启动httpd

#service httpd start

iv)检查httpd

#service httpd status

1.我在cron作业中添加了一个命令,以便每周(星期日)检查证书是否过期

# GL  2019-12-09  Renew Let's Encrypt SSL Certificate
#                 Execute every Sunday at noon
00 12 * * Sun     /bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && /bin/certbot renew >> /var/log/certbot.log 2>&1

这解决了我的问题。

相关问题