RBoy
(RBoy)
1
继续从这里对话:
这是我第一次收到 Redsift 的提醒,说我的证书将在一周内过期。通常 Discourse 会提前很久更新证书。这次没有,在我开始重建(这应该能解决问题)之前,@Falco 你有什么想让我检查并在这里回复的,以帮助找到证书未更新的根本原因吗?
根证书是 ISRGX1,这是即将过期的证书信息:
| 通用名称 (CN) |
E6 |
| 组织 (O) |
Let’s Encrypt |
| 组织单位 (OU) |
证书不包含此项 |
| 签发日期 |
2025年7月16日星期三下午7:36:45 |
| 到期日期 |
2025年10月14日星期二下午7:36:44 |
当前构建版本是 3.6.0.beta1-dev (7ee52c8f85)
pfaffman
(Jay Pfaffman)
2
Let’s Encrypt 所需的端点曾有一段时间被重定向。如果重建,该问题已修复。
5 个赞
如果记忆没错的话,证书有效期为 3 个月,现在他们将在到期前尝试自动续订。
1 个赞
Dannii
(Dannii)
5
我知道它是如何运作的。
但距离我更新论坛软件已经过去一天多了,证书似乎还没有更新。它还有 5 天到期,所以真的需要尽快续订。
我使用的是 Discourse 稳定分支,如果这有区别的话。修复端点是否有可能没有被移植?
lessLost
(Michael)
10
我们也有同样的 SSL 未续订的经历。
如果有人能仔细检查一下 discourse-docker 上的 web.ssl.template 是否正常工作,那就太好了。在我看来,端口 80 实际上并没有提供 Let’s Encrypt 使用的任何 /.well-known/ URL,所有 URL 都被重定向到 SSL,包括我手动放入 /var/www/discourse/public/.well-known/ 中的测试文件。我不得不直接在应用程序容器中编辑 /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf。
也许这发生在 discourse-docker 的提交 ae4887a 之后?
1 个赞
我也是。我没有收到关于证书过期的警告。进入服务器并执行重建 /var/discourse % ./launcher rebuild 解决了问题。
2 个赞
lessLost
(Michael)
13
在我的测试中,使用 vanilla nginx 安装(1.18.0,但我认为 1.26.3 也是如此),nginx 配置行 return 301 https://thehostname$request_uri; 在 location 块之外会完全覆盖它之前的任何 location 块,而不是作为捕获所有。我相信 /.well-known/ 仅在端口 80 上提供服务,除非 301 重定向专门用于服务器块末尾的 / 等其他 location。这会不会是 这个 stackoverflow 帖子 的同一个问题?
很高兴 rebuild 能正常工作,但由于证书已经为我续订,我无法确认 rebuild 是否能在证书过期的情况下让 Let’s Encrypt 的验证服务器到达。也许 rebuild 会在模板行就位之前启动证书续订,或者类似的原因,而不是修复模板,但我无法确认 rebuild 为什么能成功续订。
pfaffman
(Jay Pfaffman)
14
如果您认为这是一个 Discourse,那么您应该在 github commit 上回复或打开一个新的大报告。
1 个赞