文档首页/ 云容器引擎 CCE/ 常见问题/ 网络管理/ 网络异常问题排查/ Nginx Ingress中默认开启HSTS会导致HTTP请求重定向到HTTPS
更新时间:2025-04-22 GMT+08:00
分享

Nginx Ingress中默认开启HSTS会导致HTTP请求重定向到HTTPS

问题现象

Nginx Ingress中没有配置HTTP重定向至HTTPS,nginx.ingress.kubernetes.io/ssl-redirect设置为false,但是访问HTTPS之后再访问HTTP会被重定向成HTTPS。

问题根因

NGINX Ingress控制器默认开启HTTP Strict Transport Security(HSTS)配置,当客户端初次访问开启HSTS的服务端时,服务端会在返回客户端时携带HSTS的响应头,例如:

Strict-Transport-Security: max-age=31536000; includeSubDomains

此时浏览器会记录这个HSTS响应头,并记住该域名在接下来一段时间内(指定的max-age值)只能通过HTTPS访问。当客户端下次通过HTTP访问同一域名时,浏览器会将请求直接重定向到HTTPS。

解决方案

如果客户端不希望支持HTTP自动转到HTTPS协议时,您可以在NGINX Ingress控制器插件的配置中关闭HSTS,关于HSTS的更多说明请参见HSTS

  1. 登录CCE控制台,单击集群名称进入集群,在左侧导航栏中选择“插件中心”,在右侧找到NGINX Ingress控制器插件,单击“管理”。
  2. 找到Ingress对应的控制器实例,单击“编辑”。
  3. 在Nginx配置参数中选择“YAML配置”,并将hsts参数设置为false

  4. 单击“确定”,等待插件更新完成。

    客户端HSTS默认是有缓存的,当关闭NGINX Ingress控制器的HSTS后,请您清理客户端缓存。

相关文档