不,无需额外安装。
此外,我唯一需要添加的代码块是:
after_ssl:
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d mywebsite.org --keylength"
(HTTP 到 HTTPS 的重定向似乎在没有另外两个带有 nginx 的 replace 块的情况下也能正常工作。)
不,无需额外安装。
此外,我唯一需要添加的代码块是:
after_ssl:
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d mywebsite.org --keylength"
(HTTP 到 HTTPS 的重定向似乎在没有另外两个带有 nginx 的 replace 块的情况下也能正常工作。)
所以我终于有时间来完成“使用多个域名设置 Let’s Encrypt
免费实施,即使 Cloudflare 不是您的注册商。支持 HTTPS,在您的 Discourse 安装中无需额外复杂性。
谢谢,我目前尚未使用 Cloudflare,因此之前未曾接触过这些。我选择了另一条路径,并参考了上述指南,基本解决了我的问题。你发帖的时候,我刚好提交了上面的 回复。
是的,只需准备好当 Let’s Encrypt 配置变更时可能会出问题。
当 Let’s Encrypt 更新以支持椭圆曲线时,你上面依赖的方法曾中断了几周。
唯一的区别是我在 DNS 中没有 CAA 记录。我会使用您使用的相同值添加它。
我假设您的 Discourse 主机名是 www.example.com,您确定访问 https://example.com 时不会收到警告吗?
在 Android 上的 Chrome 中,这个警告更为严重,它会完全阻止访问该网站,并且不会进行重定向。
你把我搞糊涂了
我需要留意什么,或者要准备好修复什么?
正确。
是的,我确定,控制台里没有警告。
我想我找到问题了,我之前是这样写的:
after_ssl:
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d example.com -d www.example.com --keylength"
而正确的写法应该是:
after_ssl:
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d example.com --keylength"
注意最后一行,我之前包含了 example.com 和 www.example.com。
我还把 return 301 https://$host$request_uri; 改成了 return 301 $scheme://$host$request_uri;,重新构建后看起来已经可以正常工作了。
现在我唯一担心的是 @Stephen 提到的,如果 letsencrypt 的配置发生变化,可能会导致问题。
去年9月9日的一次变更打破了您正在遵循的方法,由于该实现超出了标准安装范围,因此直到10月31日才发布解决方案。如果您查看您遵循的主题以及维基上的编辑历史,可以清楚地看到相关记录。
由于您并不需要深入进行额外的配置,因此我建议不要这样做。另一方面,当 Let’s Encrypt 确实发生变更且您受到影响时,我们可以将您引回此主题。