【发布时间】:2018-07-20 19:50:59
【问题描述】:
我们的基础设施由 Ansible 管理(包括 nginx 站点配置 - 它们是使用模板生成的)。
现在我们每 3 个月通过certbot 命令自动生成letsencrypt 证书,但是我们有大约1 分钟的停机时间(我们必须停止nginx,才能将certbot 绑定到80)。
如何进行自动更新的 Letsencrypt + nginx 集成?那么通配符呢?
我找到了一些解决方案,例如 How to setup Let's Encrypt for Nginx on Ubuntu 18.04 (including IPv6, HTTP/2 and A+ SLL rating),但他们使用 python-certbot-nginx 修改站点配置(并且它们将在下一次 Ansible 运行时被 Ansible 替换,因此 HTTPS 将被破坏)。
【问题讨论】:
-
配置您的 Nginx 以专门处理 Let's Encrypt 使用的 URL,并将它们转发到在另一个端口上运行的
certbot。有关 HAProxy,请参阅此示例:jkraemer.net/2017/01/… -
查看tom.busby.ninja/letsecnrypt-nginx-reverse-proxy-no-downtime 并使用
webroot模式,而不是standalone模式。你应该永远不需要在每次更新时停止 Nginx 或更改其配置文件。
标签: ssl nginx ansible lets-encrypt ubuntu-18.04