【问题标题】:Certbot automatic renewal vulnerabilitiesCertbot 自动更新漏洞
【发布时间】:2018-08-06 09:50:16
【问题描述】:

我有 certbot,包括在与客户端的多个安装中使用的自动续订。

现在我一直在这里阅读:

https://community.letsencrypt.org/t/2018-01-11-update-regarding-acme-tls-sni-and-shared-hosting-infrastructure/50188

这里

https://community.letsencrypt.org/t/solution-client-with-the-currently-selected-authenticator-does-not-support-any-combination-of-challenges-that-will-satisfy-the-ca/49983

这里

https://github.com/certbot/certbot/issues/5405

这里也是:

https://community.letsencrypt.org/t/important-what-you-need-to-know-about-tls-sni-validation-issues/50811

似乎每个人都在说一些略有不同的东西

并没有给出明确的解释。

我一直在阅读 certbot 安装的标准描述

更新文档指向此处:

https://certbot.eff.org/docs/using.html#renewal

但是:旧的易受攻击的tls-sni-01 方法仍然列出

我试着总结一下:

在缓解现有服务器上现有问题的指南中:

他们建议在更新时停止并启动服务器。 但是……这样不好。如果某些配置中断,并且在我睡着时服务器停止启动怎么办?服务器将不可用。或者更糟糕的事情。我不是 devops 专家,但让服务器或多或少随机启动和停止,似乎不是一个好的解决方案。我错了吗?

作为替代方案,我看到不使用tls-sni-01 的webroot 插件。 https://certbot.eff.org/docs/using.html#webroot

这对我来说似乎是唯一的方法,这似乎是可靠的。

我错过了什么吗?我们基本上被告知要使用 webroot 插件吗?

因为所有其他人都使用 tls-sni-01,它们不是自动化的(您可以手动完成,但我实际上不想这样做)或要求您没有正在运行的服务器(独立)。

这是为未来的服务器准备的。我猜现有的域名续订将继续使用旧的tls-sni-01,这就是他们似乎在说的。

【问题讨论】:

    标签: ssl https ssl-certificate lets-encrypt certbot


    【解决方案1】:

    所以我没有得到答案,我将不得不假设它就是这样,例如尽可能使用 webroot 插件。

    我真正发现的是:

    命令certbot renew 转到文件夹/etc/letsencrypt/renewal 并检查那里的配置文件。这些配置文件是在您上次从命令行触发认证过程时创建的。因此,如果您做的最后一件事是使用独立,您将在那里找到独立配置(您想从那里迁移)

    好的,现在你第一次运行 webroot 插件:

    certbot certonly --webroot -w /var/www/html/www.mypage.com/public -d www.mypage.com -d mypage.comsee here

    这最终可以在/etc/letsencrypt/renewal 中创建一个新条目或覆盖旧的现有条目。只要确保删除独立文件,以防它没有覆盖而是创建一个新文件,您只希望那里有 webroot 文件

    现在运行crontab -e最终必须是root用户

    添加

    53 14 * * * certbot renew --post-hook "service nginx reload"

    这将在每天 14:53 运行并重新加载配置并尝试更新证书

    【讨论】:

    • 小心使用 crontab,因为 certbot 在安装时会自动添加自动更新 cronjob 和计时器。最好在其中添加您的 --post-hook,这样您就不会有 2 个工作在做同样的事情。更多信息在这里:gist.github.com/jonasva/be3f89f6a06f80692920b87afbb602bc
    • @Jones03 这是有趣的信息......请添加一个答案我可以将接受的答案转移给你(我想)。顺便说一句,我不太完全理解你的指示。例如。 Once you've established that the timer is running 不确定如何确保它正在运行。你也写了,如果它正在运行,它确实执行 cronjob。有点迷茫
    • @Jones03 我刚刚在一个新的 certbot 上进行了新安装,使用了他们的基本设置并进行了 http 身份验证,例如sudo certbot --nginx 会做 http-01 或类似的东西,而不是易受攻击的那个......混淆完成
    猜你喜欢
    • 1970-01-01
    • 2019-08-17
    • 2021-06-12
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多