双容器配置求助:LetsEncrypt 已故障数日

是的,确实如此,因为有人让我使用一个与 nginx 相关的“临时补丁”。我其实无法准确解释这是什么,因为我自己也不懂。
但问题在于,如果之后我想进行一次正常的重建(rebuild),就会遇到问题(至少根据我现在得到的说法,如果在 8 月 29 日之前操作,届时希望证书能重新签发。说实话,我现在对这一切都不太敢确信。

是的,www 在我去年首次安装 Discourse 时就已经配置好了。

现在,在我尽力让 Claude 帮我理解发生了什么之后,我得到了以下结论。如果你有任何异议,请尽管提出,因为如果有学习机会,我很乐意学习:

  • ECC 似乎是目前的问题所在,但实际上它并非真正必要,因为 RSA 是默认设置,如果我完全弃用 ECC,大家仍然可以无问题地访问我的网站。
  • 如前所述,希望到了 8 月 29 日,随着 168 小时的重置以及 5 个证书限制的重置,这整个问题就会消失:
sudo docker exec web_only grep -i "retry after" /shared/letsencrypt/acme.sh.log | tail -1
  "detail": "too many certificates (5) already issued for this exact set of identifiers in the last 168h0m0s, retry after 2026-08-29 03:43:15 UTC: see https://letsencrypt.org/docs/rate-limits/#new-certificates-per-exact-set-of-identifiers",
  • 如果 8 月 29 日情况仍未恢复正常,Claude 建议弃用 ECC。当我询问会修改哪个文件以及哪个部分时,它是这样说的:

文件: 我们即将创建的那个副本,web.letsencrypt.rsa-only.template.yml(保持你原始的库存文件不变,作为后备)。

其中被移除的内容: 在文件的 /usr/local/bin/letsencrypt 部分中找到的整个代码块:

########################################################
# ECDSA cert
########################################################
issue_cert "ec-256"

if ! cert_exists "_ecc"; then
  # Try to issue the cert again if something goes wrong
  issue_cert "ec-256" "--force"
fi

LE_WORKING_DIR="${LETSENCRYPT_DIR}" ${LETSENCRYPT_DIR}/acme.sh \
  --installcert --ecc \
  -d ${DISCOURSE_HOSTNAME} \
  --fullchainpath /shared/ssl/${DISCOURSE_HOSTNAME}_ecc.cer \
  --keypath /shared/ssl/${DISCOURSE_HOSTNAME}_ecc.key \
  --reloadcmd "sv reload nginx"

这就是整个 ECC 部分,文件中其他内容不变。它上方的 RSA 部分保持原样。

之后还会修改另一个文件: containers/web_only.yml,使其指向这个新的副本,而不是库存模板。我们将作为单独的后续步骤来执行此操作。