首页/安全/加密与证书速查/HTTPS 重定向循环排查
本包目录(305 条)
加密算法基础95 条TLS 与 HTTPS60 条证书与 PKI30 条OpenSSL 实战30 条
证书运维排查49 条
密钥管理41 条

HTTPS 重定向循环排查

当 CDN 或代理终止 TLS 而源站又按自身协议判断跳转 HTTPS 时,会出现重定向循环(ERR_TOO_MANY_REDIRECTS)。应根据 X-Forwarded-Proto 判断真实协议,并在边缘统一承担跳转。

加密与证书速查安全更新于 2026-10-12
典型诱因CDN 回源为 HTTP,源站无条件 301 到 HTTPS 形成回环
正确依据X-Forwarded-Proto 由边缘设置,源站据此判断
观察方式curl -IL 逐跳打印 301/302 的 Location

按转发头判断协议

按转发头判断协议
map $http_x_forwarded_proto $is_https {
    default 0;
    https   1;
}
server {
    listen 80;
    if ($is_https = 0) { return 301 https://$host$request_uri; }
}

逐跳观察重定向

逐跳观察重定向
curl -sIL http://example.com/ | grep -i '^HTTP\|^location'
curl -sIL https://example.com/ | grep -i '^HTTP\|^location'
if 在 location 上下文限制较多,复杂跳转建议用 map 或独立 server 块表达;同时检查 CDN 的 SSL 模式设置。

易错点

  • 只看源站日志,忽略边缘 301 与源站 301 叠加
  • 用 $server_port 判断协议,在非标端口场景判断错误

数据来源与参考

  • nginx 官方文档(map / if 指令)
  • Cloudflare 帮助文档(SSL/TLS 模式)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌