等等……我想我找到问题了……禁用了代理,不使用 Cloudflare 模板重新构建。之后重新启用代理,我就可以通过严格 SSL 访问 WordPress 和论坛了!
如果您选择不使用 Cloudflare 模板,您很容易就会受到速率限制…
Discourse 会认为许多人是通过同一个 IP(Cloudflare 代理)进行注册,并开始对他们进行速率限制。
嗯……那最好再试一次,这次不用 Let’s Encrypt 邮箱,改用 Cloudflare 模板。你知道在用 Cloudflare 模板重新构建时,是否应该保持代理开启吗?
非常感谢你的所有帮助……我其实更偏向创意方面的工作。
这是我的注册商的问题,而不仅仅是 DNS 的问题……而且我付不起他们要求的巨额费用来使用不同的 DNS。所以,哎呀。
Discourse 设置现在不再需要电子邮件来注册证书,这种情况已经持续一段时间了。除非你修改 yml 文件以禁用 SSL,否则它始终会默认使用 HTTPS。
使用 Cloudflare 作为 DNS 和开启橙色云朵(代理模式)是完全不同的两回事。上文提到使用 Cloudflare 是指其代理和优化功能,这些功能过去曾引发不少问题。但他们的 DNS 服务本身没问题,甚至很好。
你的 Discourse 安装无需更改,目前 HTTPS 已正常工作,一切正常。如果 SSL 能正常工作且 Cloudflare 模板已启用,就不要动它。
听起来问题现在出在 WordPress 上。你是如何安装它的?是仅仅在一台 VPS 上,还是使用了某种 WordPress 托管服务?
这是一种非常常见的配置,我很有信心这很容易修复。
这是一个非常不好的主意。一旦 Discourse 从 Let’s Encrypt 注册了证书,续期就会成功,因为续期是通过不同的机制进行的。无需禁用服务器与 CDN 之间的 TLS。
既然上述情况已说明,为何还要这样做?除了为所有流量创建额外的本地 UFW 规则处理负载外,你还面临规则过时的风险,这很容易导致一系列网络错误。Cloudflare 会定期上线新的 IP 段,你最早得知的方式就是用户无法访问网站。让证书正常注册,如果你确实想使用 Cloudflare,只需相应调整页面规则即可。
我在 DNS 仅模式下使用 Cloudflare,操作非常简单。只需在 DNS 控制面板中点击并关闭“橙色云朵”图标,使其变为灰色即可。这就是全部需要做的步骤。
这已不再像以前那样有效。如果你不想使用 Let’s Encrypt,就必须手动配置,而不能通过 discourse-setup 进行设置。
那么,在没有 Let’s Encrypt 邮箱的情况下,Discourse 会获得什么证书?是自签名证书,还是使用任意邮箱签发的证书?
无论哪种情况,它都应该能与 Cloudflare SSL 正常工作,因为 Cloudflare 在其“完整 SSL
你需要查看源代码,因为我不太记得了。我想它会使用管理员邮箱。如果检查服务器在 443 端口是否可用失败,它将拒绝安装。
我可能完全错了,但根据这段代码:
read_config "LETSENCRYPT_ACCOUNT_EMAIL"
local letsencrypt_account_email=$read_config_result
if [ -z $letsencrypt_account_email ]
then
letsencrypt_account_email="me@example.com"
fi
if [ "$letsencrypt_account_email" = "me@example.com" ]
then
local letsencrypt_status="ENTER to skip"
else
local letsencrypt_status="Enter 'OFF' to disable."
fi
看起来默认配置检查应该提供一个选项,允许输入“off”来禁用 Let’s Encrypt?也许我完全搞错了,或者看错了地方?
禁用 Let’s Encrypt 并非解决办法。
在标准安装中,答案是否定的。在高级安装中(例如使用反向代理的情况),这绝对是一个可行的解决方案。
您能详细说明一下原因吗?
让证书方案正常运行其实很容易。即使您在同一台服务器上运行第二个 Web 服务器并在本地进行代理,让证书生效也轻而易举,那为什么不做呢?
为什么要申请多个证书?
既然我可以通过反向代理(例如 nginx 或 Caddy)向 Let’s Encrypt 申请一个(统一的)证书,为什么还需要在 Discourse 容器内申请第二个证书,而且它实际上不会被任何服务使用?
我认为,如果可以的话,一般的做法是完全避免代理的复杂性 ![]()
但一旦你开始审视超出标准一两个容器设置的部署,这种情况就不可避免了。
你的论坛需要发展到相当大的规模,才需要考虑使用 Cloudflare 的代理服务。这通常是在你的论坛开始不堪重负时才值得考虑的事项。除非你正在将大型论坛迁移到 Discourse,否则任何正在安装 Discourse 的人都不需要为此操心。
我实在不同意,正确配置 HTTPS 其实很简单。在这个案例中,用户在同一个域名下的两台不同服务器上托管了两个站点。
无论是否启用 Cloudflare,从技术角度来说,这两个站点完全可以同时通过 HTTPS 提供服务。只要了解 Let’s Encrypt 的证书申请方式,并学会如何针对 Discourse 优化 Cloudflare 设置,操作起来并不难。Cloudflare 提供完整的 HTTPS 模式,正是为这种场景设计的:从服务器到 Cloudflare 网络使用 TLS 加密,从 Cloudflare 网络到客户端也使用 TLS 加密,中间会解密以便其进行缓存和“优化”。不过对于 Discourse 来说,我们知道最后这一步效果并不理想。
主要是这一点,不过设置页面规则来缓存 /uploads/ 目录确实也有好处:它能在一段时间内减轻服务器压力,让配置较低的 VPS 运行得更久一些。