好吧,我正在尝试使用 WHMCS,为了在 https 上运行,我必须在 CloudFlare 中将 SSL 设置为 Full。如果网站没有崩溃,那就没问题了。如果我直接连接到 IP,它工作正常,但当我通过域名连接时,它不起作用。我收到 521 服务器错误。
我正在使用 CentOS 7,并安装了防火墙。我将 CloudFlare 的 IP 地址列入白名单。
firewall-cmd --get-active-zones
public
sources: 173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/12 172.64.0.0/13 131.0.72.0/22
这些是 Cloudflare 网站上列出的所有 IP。我尝试过重启防火墙、重启 Apache,甚至重启服务器,但仍然出现 521 错误。我遗漏了什么?我尝试过他们帮助页面上的所有方法,如下所示:https://support.cloudflare.com/hc/en-us/articles/200171916-Error-521-Web-server-is-down
答案1
CloudFlare 目前提供四种 TLS / SSL 设置: - 关闭 - 灵活 - 完全 - 完全严格
鉴于您评论说切换到 Flexible 后它就可以正常工作,这让我认为您没有在自己的服务器上设置证书。Flexible 意味着 cloudflare 通过未加密的 http 连接到您的服务器。
由于您声明 WHMCS 需要完整模式,因此 cloudflare 在该模式下通过 https 连接到您的服务器,但因此需要您的服务器上有证书:“[..] 在启用完整 SSL 选项之前,请配置您的原始 Web 服务器以允许端口 443 上的 HTTPS 连接,并提供自签名 SSL 证书、Cloudflare Origin CA 证书或从证书颁发机构购买的有效证书。”