大家好,
在将我的 Discourse 站点更新到 3.5.0.beta8-dev 后,通过 Cloudflare 访问站点时突然出现 521 “Web 服务器已关闭”错误。这出乎我的意料,因为我之前是按照本指南配置的,并且在此之前一直运行良好。
然后我尝试将 Cloudflare 中的 SSL/TLS 加密模式从 **完全(严格)**更改为 灵活,站点又重新加载了。
有人知道为什么更新后会出现这种情况吗?
3.5.0.beta8-dev 中是否有任何可能影响 Cloudflare 兼容性或 HTTPS 处理的新内容?
非常感谢任何帮助或建议!
提前致谢!
LotusJeff
(Jeff Cocking)
2
我运行的是 3.5.0.beta8-dev,启用了 Cloudflare 的 Full (strict) SSL,没有遇到任何问题。
有几件事需要检查:
- 检查您的 Let’s Encrypt - 查看您的升级日志并验证所有内容是否已正确重建。
- 检查是否有任何外部防火墙更改(DigitalOcean 提供外部防火墙)
521 和切换到 Flexible 表明您的服务器未配置 HTTPS。
感谢您的建议!@LotusJeff
我检查了我的 SSL 设置,我没有使用 Let’s Encrypt,我从 Cloudflare 生成了 源证书,并将密钥和证书放在这里:
检查后我进行了完全重建。但当 Cloudflare 设置为 Full (Strict) 时,我仍然收到 521 错误。
供参考,这是我 app.yml 中的模板部分:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## 如果您想添加 Let's Encrypt (https),请取消注释这两行
- "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
- "templates/cloudflare.template.yml"
expose:
- "80:80" # http
- "443:443" # https
再次感谢您花时间提供帮助!
LotusJeff
(Jeff Cocking)
4
根据记忆,Cloudflare 证书的有效期为 90 天。这将要求您每 3 个月创建一次新证书。您还记得您的证书有多久了吗?
默认设置为使用 Let’s Encrypt。系统将为您自动续订证书。少了一件需要手动管理的事情。
Cloudflare 现在提供有效期长达 15 年的证书,我的证书仍在有效期内。
话虽如此,为了确保万无一失,我还尝试生成了一个新证书并替换了现有证书,但问题依旧存在。
如果我想切换回使用 Let’s Encrypt 的默认设置,
仅仅需要:
- 取消注释
app.yml 中的这一行:
- "templates/web.letsencrypt.ssl.template.yml"
- 并将 Cloudflare 的 SSL 模式设置为 Full?
LotusJeff
(Jeff Cocking)
6
我从未从私有证书过渡到 Discourse 的 Let’s Encrypt,话虽如此……
在 app.yml 中,您需要在两个位置取消注释:
- 模板行
- "templates/web.letsencrypt.ssl.template.yml"
- Let’s Encrypt 账户电子邮件:
## 如果您添加了 Let's Encrypt 模板,请取消注释下方以获取免费 SSL 证书
LETSENCRYPT_ACCOUNT_EMAIL: <在此处添加您的电子邮件地址>
如果您对自定义 SSL 证书的模板进行了任何其他手动更改,则需要将其恢复为标准设置。
Let’s Encrypt 组件位于重建应用程序的末尾。留意它,看看是否收到任何错误代码。
1 个赞
system
(system)
关闭
7
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.