Discourse 续订证书失败

继续从这里对话:

这是我第一次收到 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)

Let’s Encrypt 所需的端点曾有一段时间被重定向。如果重建,该问题已修复。

5 个赞

更新后多久应续订证书?

如果记忆没错的话,证书有效期为 3 个月,现在他们将在到期前尝试自动续订。

1 个赞

我知道它是如何运作的。

但距离我更新论坛软件已经过去一天多了,证书似乎还没有更新。它还有 5 天到期,所以真的需要尽快续订。

我使用的是 Discourse 稳定分支,如果这有区别的话。修复端点是否有可能没有被移植?

对我来说,证书在重建后立即更新了

您是通过网络还是命令行重新构建的?

1 个赞

是的,解释在这里:

1 个赞

我的论坛在我执行命令行重建后终于更新了证书。

3 个赞

我们也有同样的 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 个赞

最近一次出现臭名昭著的路线错误是什么时候?

你上次进行重建是什么时候?

1 个赞

我也是。我没有收到关于证书过期的警告。进入服务器并执行重建 /var/discourse % ./launcher rebuild 解决了问题。

2 个赞

在我的测试中,使用 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 为什么能成功续订。

如果您认为这是一个 Discourse,那么您应该在 github commit 上回复或打开一个新的大报告。

1 个赞