“证书过多”错误

我觉得这可能会导致 Discourse 实例崩溃。它一直卡在 “Oops…” 高负载提示上,无法继续。

Create new order error. Le_OrderFinalize not found. {

  "type": "urn:ietf:params:acme:error:rateLimited",

  "detail": "too many certificates (5) already issued for this exact set of identifiers in the last 168h0m0s, retry after ....

我看到其他人也遇到过这个问题(原因不明),请问有解决方案吗?

我觉得你只需要等几个小时再试一次。如果我没记错的话,速率限制是按小时重置的。你也可以为域名申请一个 www 前缀,以获取新证书并重置计数。

谢谢你的提醒。既然已经过了几个小时,我现在试试重新构建。

根据 @Ed_S 在这里的说法,需要等待 7 天!

重新构建没有起作用。

我重新运行了向导设置以添加 www 来获取新证书。这似乎起作用了,但我不得不按照 @pfaffman 的建议禁用连接检查,以绕过 443 端口无法访问的错误。

现在证书加载失败,日志显示:

...PEM_read_bio_X509_AUX() failed (SSL: error:0480006C:PEM routines::no start line:Expecting: TRUSTED CERTIFICATE)

这可能与 443/80 端口关闭的问题有关,这也是我看到的一个常见问题。

tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      72556/docker-proxy

tcp6       0      0 :::443                  :::*                    LISTEN      72564/docker-proxy

通过外部检查工具扫描端口,结果显示它们是关闭的 :man_shrugging:

好的,我回退到了另一台服务器,并恢复了数据库的版本,在那台服务器上 80/443 端口是开放的。在继续操作之前,我先使用外部端口扫描器进行了检查。

当我运行 ./launcher discourse-setup 时,出现了“443 端口不可访问”的错误。

于是我又重新扫描了服务器的 80 和 443 端口,结果它们现在显示为关闭状态。

就好像运行向导这个操作会关闭端口一样?! :man_shrugging:

我认为向导不支持多个域名,但我已经很久没有使用过它了。

这几乎肯定是你的问题所在。你可能没有配置 DNS,或者是有东西在阻止传入流量。

谢谢,是的,我通过回退“灰色云”设置解决了上面提到的 PEM_red… 错误,我在另一个帖子里找到了这个建议。

在运行向导时,我只输入了 www. 域名,这样做可能不对?我这么做是为了绕过速率限制。

总之,解决了那个 PEM 错误后,又遇到了这个:

fail: nginx: runsv not running

[Wed Sep .... UTC 2026] Reload error for :

C=US, O=Let's Encrypt, CN=YR1

error 2 at 1 depth lookup: unable to get issuer certificate

error fullchain.cer: verification failed

C=US, O=Let's Encrypt, CN=YE2

error 2 at 1 depth lookup: unable to get issuer certificate

error fullchain.cer: verification failed

不过这看起来问题不大,因为日志中出现了一系列证书成功的输出,而在我启用灰色云之前,这种情况从未发生过。

此外,80 和 443 端口显示为开放状态。

我还看到日志末尾多次打印出以下内容:

X-Accel-Mapping header missing

让我补充更多背景信息:该实例已解析到域名并允许登录,因此登录界面会出现(设置为仅登录模式),并接受凭据和双因素认证。但一旦成功,就会回到那个“Oops…”的“哦,又来了”屏幕。

这意味着我又回到了起点。

最初,原始服务器实例上的任何设置都未做更改。突然间,出现了几天的性能不佳行为,在此期间,指标显示服务器负载出现了异常的周期性波动,超出了正常水平。就像引擎在空转但毫无进展一样,直到最终陷入永久性的“Oops”状态。

于是我开始着手处理。其中一个解决方案是备份并恢复到全新的 Discourse 实例,目前我就是处于这种状态,即能够登录,但又回到了“Oops”状态。

另外补充一个历史备注:过去我在“Full”或“Full (strict)”模式下遇到过问题,“Full (strict)”并不总是有效,不得不回退到“Full”。这可能只是无关紧要的细节。

天哪 :worried:

好的,我可以确认成功了。我使用了一个较旧的普通用户账号,现在可以正常登录了。

原来问题一直出在这里,我却一直在原地打转!