Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 如何停止更新letsencrypt/certbot证书?_Ssl_Lets Encrypt_Certbot - Fatal编程技术网

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

Ssl 如何停止更新letsencrypt/certbot证书?,ssl,lets-encrypt,certbot,Ssl,Lets Encrypt,Certbot,在线上有很多教程介绍如何使用letsencrypt创建和续订证书,但我想删除并停止续订我创建的证书(它仅为测试目的而创建)。如何停止续订最初使用letsencrypt命令获得的一个证书(同时继续续订其他证书) 我在其他任何地方都没有看到有人问过这个问题,在manletsencrypt中也没有一个命令似乎能做到这一点 目前,我正在使用以下cron作业续订证书: 30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log

在线上有很多教程介绍如何使用letsencrypt创建和续订证书,但我想删除并停止续订我创建的证书(它仅为测试目的而创建)。如何停止续订最初使用
letsencrypt
命令获得的一个证书(同时继续续订其他证书)

我在其他任何地方都没有看到有人问过这个问题,在
manletsencrypt
中也没有一个命令似乎能做到这一点

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

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

现在似乎没有正式“取消”续费的命令。然而,我从中发现了一个似乎有效的建议

我尝试运行以下命令

sudo find /etc/letsencrypt/ -name '*outdated.example.com*'
live/
archive/
renewal/
目录中只找到一个文件

我也试过跑步

sudo grep -r /etc/letsencrypt/ -e 'outdated.example.com'
并且在
renewal/
目录(即
renewal/outlated.example.com.conf
)的一个文件中只找到对过时域的引用

我运行了
letsencrypt-renew
,它在输出中列出了
outleted.example.com

然后我创建了一个目录
\u renewal\u disabled
,并将
renewal/outleted.example.com.conf
移动到该目录

我再次运行了
letsencrypt-renew
,它不再在输出中列出
过时的.example.com

由此,我可以假定我已“禁用”证书续订。

已更新 请看答案

更新版本的

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

rm -rf /etc/letsencrypt/live/${BAD_DOMAIN}/
rm -f /etc/letsencrypt/renewal/${BAD_DOMAIN}.conf
certbot renew --dry-run
如果这样做有效,您可以继续续签,而无需进行后续更新

certbot renew
如果您使用的是
nginx
或其他服务器,请不要忘记编辑您的配置,以便它们不再指向无效或已删除的证书


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

使用
certbot
,您只需使用:

certbot delete --cert-name mywebsite.com

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

OP除了停止续订之外,还想删除证书,这已在其他答案中说明。但是,如果您想保留证书,但不想继续以后的续订(例如,如果您已切换到其他服务器,但正在等待所有DNS更改的传播),则可以进入
/etc/letsencrypte/renewal
并将
example.com.conf
重命名为
example.com.conf.disabled
(或任何其他非
.conf
名称,甚至将其全部删除:

/etc/letsencrypte/renewal/example.com.conf.disabled
您可以通过运行以下命令来验证它是否已禁用,如中所述

最后,有些人可以简单地将
autorenew=False
放在
/etc/letsencrypte/renewal/example.com.conf
文件的顶部,但这似乎不起作用(我本来会回复那篇文章给出我的反馈,但他们的论坛在30天后就停止了评论)


回顾之后,我意识到这些信息中的大部分都包含在中,但我想澄清在不删除或禁用证书本身的情况下禁用续订的单独用例所需的步骤。

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

certbot delete

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

您可能需要提供更多详细信息--u通常这不是自动的。我有一个cronjob每月处理一次。如果我想禁用它(
crontab-e
),我只需对此进行注释。@DavidBetz更新了更多详细信息。这不像禁用cron job那么简单,因为我在这台服务器上还有其他证书,我仍然想续订。今天(2017年)只能使用
certbot续订
?如何操作?是的,选择的答案--虽然我确信是正确的,但已经过时。此答案是正确的答案,如果可以更新,那就太好了。如果您使用
certbot删除
,您将得到一个交互式菜单,但对我无效。我得到一个确认提示,然后是一条消息“找不到名为的证书”。但是,随后尝试续订所有内容的尝试再次失败,原因是该特定域是罪魁祸首(它不再位于DNS中)。
certbot delete