pfaffman
(Jay Pfaffman)
2021 年10 月 8 日 13:53
1
编辑:将此改为 bug。Force_https 现在在之前启用的站点上被禁用了,这导致了一些问题。
我曾花了一段时间调试一个“上传无法工作”的站点。在排查了一系列显而易见的问题(重建、安全模式、考虑非标准插件)后,我最终注意到了混合内容警告,并启用了 force_https,问题得以解决。
我以为一两年前 force_https 默认是启用的,但最近几次我听说(或亲眼看到)因为 force_https 未启用而导致功能异常。
是否有理由不将其默认开启?
[/quote]
我曾花了一段时间调试一个“上传无法工作”的站点。在排查了一系列显而易见的问题(重建、安全模式、考虑非标准插件)后,我最终注意到了混合内容警告,并启用了 force_https,问题得以解决。
我以为一两年前 force_https 默认是启用的,但最近几次我听说(或亲眼看到)因为 force_https 未启用而导致功能异常。
是否有理由不将其默认开启?
1 个赞
RGJ
(Richard - Communiteq)
2021 年10 月 8 日 16:26
2
如果存在有效证书,它会在 discourse.conf 中 自动启用 。
这确实是一两年前开始的。
grep -q 'force_https' "/var/www/discourse/config/discourse.conf" || echo "force_https = 'true'" >> "/var/www/discourse/config/discourse.conf"
1 个赞
pfaffman
(Jay Pfaffman)
2021 年10 月 8 日 16:45
3
啊哈!谢谢,Richard。
所以我没有疯。
问题是有效证书的验证失败了:
# openssl verify -CAfile ca.cer fullchain.cer
O = Digital Signature Trust Co., CN = DST Root CA X3
error 10 at 3 depth lookup: certificate has expired
error fullchain.cer: verification failed
然后,如果我从 /etc/ca-certificates.conf 中移除 mozilla/DST_Root_CA_X3.crt 并运行 update-ca-certificates,我就会得到以下结果:
C = US, O = Internet Security Research Group, CN = ISRG Root X1
error 2 at 2 depth lookup: unable to get issuer certificate
error fullchain.cer: verification failed
它在浏览器中显示正常。而且我今天刚刚重新构建了该容器(所以它应该包含更新后的根证书)。
我对证书这方面了解不多,不太清楚具体是怎么回事。我可以在容器内部 curl Let’s Encrypt 证书(上周我在使用的一个 WordPress 容器中,这项测试曾失败)。
而且这次不只是我这样,最近确实有 一些人通过启用 force_https 解决了问题 。
1 个赞
RGJ
(Richard - Communiteq)
2021 年10 月 8 日 17:21
4
是的,这听起来与 Let’s Encrypt 根证书过期 有关,尤其是/仅当该问题是在上周五之后开始出现的。
openssl version 命令的输出是什么(在 Docker 容器内)?(因为 此问题 )。
2 个赞
pfaffman
(Jay Pfaffman)
2021 年10 月 8 日 17:55
5
OpenSSL 1.1.1d 2019年9月10日
所以也许需要“将 ISRG Root X1 添加到信任存储”?但我在 ca-certificates.conf 中看到了 mozilla/ISRG_Root_X1.crt。
1 个赞
pfaffman
(Jay Pfaffman)
2021 年10 月 8 日 20:26
6
天哪。我花了两天时间调试一个问题,原本以为是 Rails、Ansible 和 Python 之间某个复杂的集成问题,结果却发现是我那台服务器之前启用了 force_https,现在却关闭了,导致大量请求发往 http://myserver 而不是 https://myserver。
这看起来确实像是一个 bug。
2 个赞
RGJ
(Richard - Communiteq)
2021 年10 月 11 日 17:46
7
是的,这确实是一个漏洞。
上周我们将论坛迁移到另一台服务器时,触发了 Let’s Encrypt 的重新签发限制(同一主机名每周最多 5 次)。起初我们不知道原因,但这个漏洞导致每次构建时都会重新签发证书,五次之后便达到了速率限制。由于之前的证书仍保留在服务器上,因此并未引起任何警报。
直到我们将论坛迁移到新服务器时,才发现问题:我们未能获得新证书。虽然可以从旧服务器复制证书,但我们从未意识到根本原因。
acme.sh 被 锁定在 2.9.0 版本 ,而主分支已更新至 3.0.1,并引入了 设置默认链的功能 ,我怀疑这可能与该问题有关。
3 个赞
pfaffman
(Jay Pfaffman)
2021 年10 月 12 日 14:08
9
嘿 @Falco ,你想看看这个吗?你似乎对这些事情很精通。过去一两周里,我花了好几个小时研究这个,但仍然不明白是怎么回事。
1 个赞
Falco
(Falco)
2021 年10 月 12 日 14:38
10
是的,我已在周末将其分配给自己。这里正值延长的假期周末,但我将尽快在本周内查看。
2 个赞
pfaffman
(Jay Pfaffman)
2021 年10 月 12 日 14:48
11
Falco:
是的,我上周末把它分配给自己了。
啊,原来是我漏掉了那部分。抱歉打扰您了。
我们的延长假期刚结束,而阿帕雷西达圣母节也不在我的日历上。不过现在我知道了。
谢谢。
2 个赞