如何停止续订letsencrypt / certbot证书?

时间:2016-10-13 20:38:29

标签: ssl lets-encrypt certbot

网上有很多关于如何使用letsencrypt创建和续订证书的教程,但我想删除并停止续订我创建的证书(它仅用于测试目的)。如何停止续订最初使用letsencrypt命令获得的证书(同时仍继续续订其他证书)?

我没有看到任何人在其他任何地方提出这个问题的单个实例,也没有man letsencrypt中似乎这样做的命令。

目前我正在使用以下cron作业续订证书:

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

5 个答案:

答案 0 :(得分:28)

使用certbot,您只需使用:

certbot delete --cert-name mywebsite.com

这将从letsencrypt配置目录中删除证书和所有相关文件。

答案 1 :(得分:8)

此时似乎没有正式“取消”续订的命令。但是,我发现this thread的建议似乎有效。

我尝试运行以下命令,

{ _id: 1, name: 'a' }
{ _id: 2, name: 'ab' }
{ _id: 3, name: 'abc' }
{ _id: 4, name: 'acde' }

并且只在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

由此我可以假设我“禁用”了证书的更新。

答案 2 :(得分:5)

更新

请参阅答案https://stackoverflow.com/a/47372583/1426788

较新版本的certbot supports deleting certs via the 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或其他服务器运行,请不要忘记编辑您的配置,以便他们不再指向无效或已删除的证书。

最后,重新启动或重新加载服务器配置,然后你就完成了!

答案 3 :(得分:0)

OP除了停止续订外,还希望删除证书,其他答案已涵盖了该证书。但是,如果您想保留证书但停止将来的续订(例如,如果您已切换到其他服务器,但正在等待所有DNS更改传播),则可以进入/etc/letsencrypte/renewal并重命名{{1 }}到example.com.conf(或其他任何非example.com.conf.disabled名称,甚至将其完全删除:

.conf

other answer中所述,您可以通过运行以下命令来确认它已被禁用。

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

几乎有些人suggested elsewhere可以简单地将sudo certbot renew --dry-run 放在autorenew = False文件的顶部,但这似乎不起作用。 (我会回复该帖子以提供我的反馈,但他们的论坛在30天后会删除评论。)

经过审查,我意识到other answer中包含了很多此类信息,但是我想澄清禁用续订而不删除或禁用证书本身的单独用例所需的步骤。

答案 4 :(得分:0)

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

certbot delete

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