Cloudflare开启HTTPS、SSL后无限301跳转的解决方法

Xial 发布于 2023-09-14 8 次阅读


Cloudflare 使用中有时候会遇到开启 HTTPS 后,无限 301 跳转的情况,这个其实是跟我们设置的加密方式有关。

CloudFlare 启用 SSL 可选模式可能一般人都是选的 Flexible,然后还有三个选项是 Off、Full、Full(strict);

我们下面将访问过程详解,假设用户端到 CloudFlare 的访问称为 A,CloudFlare 到服务端的回源访问称为 B:

  • Off:关闭SSL,全程使用 HTTP;
  • Flexible:A 使用 HTTPS,B 使用 HTTP,称为灵活加密;
  • Full:AB 全程使用 HTTPS,允许 B 程服务端使用自签名证书;
  • Full(strict):全程使用 HTTPS,与 Full 的区别在于服务端必须使用有效的可信任证书;

我们遇到的循环301重定向主要表现:访问任何页面都是重定向循环,包括任何静态文件;去掉SSL之后访问正常,也就是80端口访问正常,而443端口访问一定出现循环重定向。

当我们尝试把 Flexible 设为 Full 或者 Full(strict) ,然后给服务器端配上可信证书。

这个故障的总结分析:出现这个故障的大部分服务器都是因为服务器端使用了强制HTTPS,CloudFlare 的Flexible策略原理是:用户访问时使用HTTPS访问到CF的节点,然后CF通过HTTP方式回源到你的服务器去读取数据,这个时候对于你的服务器来说,CF就是访客,所以服务器返回的状态都是 301。解决方法很简单,将 SSL 策略设为 Full 或者 Full(strict) 就能解决。

转自 https://www.bnxb.com/lab/zhishi/27728.html

最后更新于 2025-01-21