当前位置:首页 >  IDC >  CDN >  正文

CDN开启HTTPS后报“重定向次数过多”:回源HTTP与源站强制跳HTTPS冲突的排查与解决

 2026-11-06 11:14  来源: A5站长网   我来投稿 撤稿纠错

  一键部署OpenClaw

刚接CDN的新站特别容易碰到这个问题:控制台里把HTTPS打开,证书也用CDN的托管证书配好,刷新页面,浏览器直接报ERR_TOO_MANY_REDIRECTS,地址栏里的https一闪一闪。把CDN一关,直连源站又一切正常。老站反而很少遇到,因为回源协议早就配过了。

这类故障基本都出在两段链路的协议不一致。用户到CDN这一跳是HTTPS,CDN到源站这一跳走的是HTTP,而源站上又配了一条强制跳HTTPS的规则。三个条件凑齐,就成死循环了。

循环过程不复杂。CDN收到HTTPS请求,按回源配置用HTTP去源站取。源站看到$scheme是http,命中301规则,返回Location响应头,指向https://同域名。CDN把这个301响应原样交给浏览器,浏览器再发一次HTTPS请求,CDN再回源,还是HTTP,还是301。每一轮都是一个完整来回,浏览器数到二十次左右就停手了。

确认办法就是看Location响应头。命令行跑curl -I http://你的域名/,-I只取HTTP响应头。如果返回301,且Location响应头指向https,说明源站在跳。再跑curl -I https://你的域名/,如果仍然返回301,且Location响应头还是同一个地址,循环就坐实了。用curl -sIL最多跟五跳,能直接看到它在哪里打转。

最省事的改法,是把CDN的回源协议也改成HTTPS。大多数CDN控制台里这一项叫回源协议、回源方式或者源站协议,选HTTPS之后,CDN到源站这一跳也加密,源站看到的$scheme是https,那条301规则不再命中,循环自然就没了。代价是源站也要装证书,源站的443端口要对CDN的回源节点开放。

如果源站不方便上证书,那就得让源站认得出这一跳其实是CDN代劳的HTTPS。CDN回源时会带一个HTTP请求头(header),常见的是X-Forwarded-Proto请求头,值写http或https;阿里云、腾讯云、Cloudflare都支持,个别厂商叫X-Forwarded-Scheme或者X-Forwarded-Protocol。具体叫什么、是否透传,查一下控制台文档就能确认。源站配置里先用map把X-Forwarded-Proto请求头映射成一个变量,默认取$scheme,请求头为https时取https:

map $http_x_forwarded_proto $real_scheme {

default $scheme;

https https;

}

然后在server块里写:

if ($real_scheme = http) {

return 301 https://$host$request_uri;

}

这里用if是安全的,因为里面只有return,没有其他指令。nginx文档里说的if有问题,指的是在if里放rewrite、proxy_pass这类会打乱配置顺序的指令。

改之前先验一件事:确认CDN真的透传了X-Forwarded-Proto请求头。有些免费套餐只透传固定的几个请求头,X-Forwarded-Proto不一定在透传范围内。验证办法是在源站的access日志格式里加$http_x_forwarded_proto,刷新一次页面再看日志,这一列有值,就说明CDN透传了该请求头;如果全是减号,那就别绕了,还是走改回源协议那条路。

改完记得清一次CDN缓存。301在浏览器和CDN两侧都可能被缓存,不清的话改完还是看到旧行为。另外,如果你用的是宝塔防火墙反代,那个场景的规则不太一样,要先确认跳转到底是nginx发的,还是反代层发的,别一上来就改源站配置。

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

相关文章

  • HTTPS 证书过期了网站被浏览器拦截?Certbot 自动续期一次配好

    去年有个数据:Let'sEncrypt的统计显示,相当一部分证书不是被主动吊销的,而是站长忘了续期,硬生生过期。Chrome和Firefox对过期证书的态度是直接红色警告页,用户看到这个页面基本就走了,对流量和搜索排名都是实打实的伤害。Let'sEncrypt证书免费但有效期只有90天,靠手动续肯定

  • 上了HTTPS只是及格线:混合内容一招定位

    证书装好了,地址栏有锁了,但浏览器控制台飘着一排黄字:mixedcontent。页面是HTTPS的,里面的图片、脚本、接口请求还是HTTP明文,等于防盗门装好了窗户开着——中间人照样能篡改这些资源,往你页面里塞东西。定位不用肉眼翻代码,F12控制台每条警告都带着资源URL,按图索骥即可。批量排查用命

    标签:
    https证书
  • 使用CDN、HTTPS 无论你是否已经在用 必读

    有人说,我的网站用了CDN加速后更慢了,也有人说我开了CDN以后,网站就降权了,真是不敢用啊!还有人说,用了HTTPS以后站点就不收录了,形形色色的CDN和HTTPS问题,这篇文章全面做一个解读,哪怕你的网站已经做了设置,可是,真的对了吗?正确的操作,还可以节省一大笔钱!1、使用CDN网站降权了不要

  • 西方机构吊销了俄罗斯的HTTPS证书

    一家西方的证书机构拒绝为俄罗斯域名办法HTTPS证书,甚至还吊销了已经办理的证书。这件事看似事小,实际上影响巨大,把互联网当武器,应该是开了先例。

    标签:
    https证书
  • 安信证书&GlobalSign合作:SSL证书申请专属8折优惠

    变幻莫测的互联网世界,如何保护网站用户隐私信息的安全是企业和个人站长需要考虑的。为了消除这种网络安全隐患,给网站配置SSL证书成为了首要任务。

热门排行

信息推荐