网站设置 https 后,再使用 cloudflare 设置 CDN 导致“重定向次数过多”

网站启用 HTTPS 后又接入 Cloudflare CDN,却突然出现“重定向次数过多”?本文用真实排障过程…


生猛大蝦 - colleagues giving fist bump

今天突然发现囧客圈无法访问了,浏览器提示“重定向次数过多”
多番搜索之后才发现原来是我在 cloudflare 的设置有问题,根据 cloudflare 的官方提示:

如果您的源服务器上没有 SSL 证书,或者仅仅无法使用端口 443 获得 Web 流量,则需要在 Cloudflare 仪表板中使用 Flexible 设置。如果在服务器上没有 SSL 证书的情况下选择“完全”或“严格”,将导致 525/526 错误

如果在您的源服务器上有 http 到 https 的重定向时选择 Flexible,将导致重定向循环(另请参阅 使用 Flexible SSL 时解决重定向循环)。在这种情况下,假设源服务器上有 SSL 证书,您应该使用“完全”或“完全(严格)”。

如果您知道服务器上有 SSL 证书(甚至是自签名证书),则可以使用“完全”设置。

如果您有受信任的证书颁发机构颁发的有效证书,则使用严格模式来提供对中间人攻击的额外防御,以及您的 Web 服务器和我们的边缘之间的更多信任。

我在服务器获取了 Let’s Encrypt 免费证书,估计就是导致出问题的地方了
按照官方的提示,把 SSL 设置为 “Full” 后,再次访问网站就正常了。
记录一下,用以备忘

感谢:https://support.cloudflare.com/hc/zh-cn/articles/200170566-%E4%B8%BA%E4%BB%80%E4%B9%88-SSL-%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%E6%88%91%E7%9A%84%E7%AB%99%E7%82%B9-

❓ 延伸问答与排错指南(FAQ)
网站启用 HTTPS 后为什么会重定向次数过多?

常见原因是源站已经把 HTTP 强制跳转到 HTTPS,而 Cloudflare 又用了 Flexible 模式,边缘与源站之间协议不一致,形成循环跳转。此时应检查源站证书和 Cloudflare SSL 设置,通常改为 Full 更合适。

Cloudflare 的 Flexible 和 Full 有什么区别?

Flexible 只加密访客到 Cloudflare 的连接,Cloudflare 到源站仍可走 HTTP;Full 则要求源站也支持 HTTPS,即使是自签名证书也可用。若源站已装证书,通常应选 Full,避免重定向循环。

源站装了 Let’s Encrypt 证书后该怎么配 Cloudflare?

如果源站已经有有效 SSL 证书,Cloudflare 一般不要再用 Flexible。先确认站点本身 HTTPS 可正常访问,再把 SSL 模式切到 Full;若证书可信且配置完整,再考虑更严格的模式。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。