【问题标题】:How to stop renewing a letsencrypt/certbot certificate?如何停止更新letsencrypt / certbot证书?
【发布时间】:2017-02-23 03:22:27
【问题描述】:

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

我没有看到任何人在其他任何地方提出这个问题,也没有看到man letsencrypt 中的命令似乎可以做到这一点。

目前我正在使用以下 cron 作业更新证书:

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

【问题讨论】:

  • 您可能需要提供更多细节——通常这不是自动的。我有一个每月处理这个的 cronjob。如果我想禁用它,我只是将其注释掉 (crontab -e)。
  • @DavidBetz 更新了更多细节。这不像禁用 cron 作业那么简单,因为我在这台服务器上还有其他证书,我还想续订。

标签: ssl lets-encrypt certbot


【解决方案1】:

使用certbot,您可以简单地使用:

certbot delete --cert-name mywebsite.com

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

【讨论】:

  • 是的,选择的答案——虽然我确信它是正确的,但它已经过时了。这个答案是正确的答案,如果能更新就太好了。
  • 如果您使用certbot delete,您将获得一个交互式菜单
  • 对我不起作用。我得到一个确认提示,然后是一条消息“找不到带有名称的证书”。然而,随后更新所有内容的尝试再次失败,并指出该特定域是罪魁祸首(它不再在 DNS 中)。
【解决方案2】:

除了停止续订之外,OP 还希望删除证书,其他答案已经涵盖了这一点。但是,如果您想保留证书但停止未来续订(例如,如果您已切换到不同的服务器,但正在等待所有 DNS 更改传播),您可以进入 /etc/letsencrypt/renewal 并将 example.com.conf 重命名为 @ 987654326@(或任何其他非.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 天后切断了 cmets。)

经过审查,我意识到other answer 中包含了大部分信息,但我想澄清在不删除或禁用证书本身的情况下禁用续订的单独用例所需的步骤。

【讨论】:

    【解决方案3】:

    目前似乎没有正式“取消”续订的命令。不过,我发现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

    据此,我可以假设我已经“禁用”了证书的续订。

    【讨论】:

    • 今天(2017)只能使用certbot renew?怎么办?
    【解决方案4】:

    更新

    请看答案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 或其他服务器运行,请不要忘记编辑您的配置,以便它们不再指向无效或已删除的证书。

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

    【讨论】:

      【解决方案5】:

      以下提供交互式菜单:

      certbot delete
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-19
        • 2019-08-17
        • 2018-08-05
        • 1970-01-01
        • 1970-01-01
        • 2017-02-21
        • 2017-07-07
        • 2021-06-12
        相关资源
        最近更新 更多