ingress 因为HSTS引发307跳转问题

简介: ingress 因为HSTS引发307跳转问题

问题背景:

某客户反馈,容器服务的ingress他们同时支持http和https,ingress的ssl-redirect配置为false,但是目前它还会自动跳转到https,导致他们客户调用出现了问题。

问题分析:


1 拿到域名后使用curl -vvv http://域名/ -L 测试看了下并没有发现用户反馈有跳转的情况;


2 继续和用户沟通要他们的复现方法,大致是这样的:

(1)打开浏览器先第一次访问http,然后再访问https。

(2)然后再访问http它就跳回https了。

看到上述用户描述后,难道触发了缓存,按照用户反馈的情况我用无痕模式测试看了下,结果确实复现了,无痕模式下缓存是关闭的,看起来并不是触发了缓存什么的机制

3 开始chrom的浏览器的F12调试到network面板,看看刷新http请求,相关header请求是什么样,结果抓到了异常了,信息如下:

从请求的信息来看是HSTS而且有307的情况,这里就需要聊下什么是HSTS了,HSTS 是 HTTP 严格传输安全(HTTP Strict Transport Security) 的缩写。 这是一种网站用来声明他们只能使用安全连接(HTTPS)访问的方法。 如果一个网站声明了 HSTS 策略,浏览器必须拒绝所有的 HTTP 连接并阻止用户接受不安全的 SSL 证书。 目前大多数主流浏览器都支持 HSTS (只有一些移动浏览器无法使用它)。


HSTS 工作原理

通常,当您在 Web 浏览器中输入 URL 时,您会跳过协议部分。 例如,你输入的是 www.acunetix.com,而不是 http://www.acunetix.com。 在这种情况下,浏览器假设你想使用 HTTP 协议,所以它在这个阶段发出一个 HTTP 请求 到 www.acunetix.com,同时,Web Server 会返回 跳转 状态码将请求重定向到 HTTPS 站点。 接下来浏览器使用 HTTPS 连接到 www.acunetix.com。 这时 HSTS 安全策略保护开始使用 HTTP 响应头。

问题到这里就比较清晰了,是nginx-ingress开启了HSTS影响到了,社区的介绍:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#hsts


解决方案:

在nginx-ingress的配置文件里面添加 hsts: false后解决。

相关文章
支付宝境外(海外)问题方案集锦
说明:   境外和境内接口不同签约等不同,如果要接入境外请按照境外方式接入 。   境外接口官网:[url]https://global.alipay.com[/url] 声明:  业务和技术方案可能会有变动最终以境外业务和技术支持回复为准,下面问题仅供参考。
7050 12
|
7月前
|
人工智能 API 开发者
藏不住了!阿里云Coding Plan重磅上线四大模型,7.9元就能玩转AI
阿里云Coding Plan上线Qwen3.5、GLM-5、MiniMax M2.5、Kimi K2.5四大顶级开源模型,Lite套餐首月仅7.9元,享1.8万次请求;Pro套餐39.9元/月,支持复杂编码任务。支持Qwen Code等多工具切换,高稳定、高Token额度。(239字)
|
6月前
|
JSON 算法 API
调用拼多多开放平台API获取店铺所有商品列表
本文详解拼多多开放平台商品列表API(pdd.goods.list.get)调用方法,涵盖授权流程、签名生成、关键参数、分页处理及响应解析,助力商家/开发者高效获取全量商品数据,适用于商品管理、数据分析等场景。(239字)
1480 1
|
10月前
|
Kubernetes 关系型数据库 MySQL
【赵渝强老师】使用Helm简化Kubernetes(K8s)应用的部署和管理
Helm是Kubernetes的应用包管理工具,可简化应用部署与管理。通过Chart模板定义应用配置,支持快速安装、升级和卸载。本文介绍Helm核心概念、部署方法,并实战演示部署MySQL和创建自定义Nginx Chart。
836 3
|
Linux 数据安全/隐私保护
当Linux普通用户尝试修改密码时遇到“passwd: Authentication token manipulation error”的解决方法。
这些步骤应当能够解决大部分出现“passwd: Authentication token manipulation error”错误的情况。及时保持系统的更新也有助于预防类似的问题发生。有时候,系统更新或者补丁能解决潜在的bug和不兼容的问题。
4431 0
|
存储 缓存 NoSQL
Redis原理—4.核心原理摘要
Redis 是一个基于内存的高性能NoSQL数据库,支持分布式集群和持久化。其网络通信模型采用多路复用监听与文件事件机制,通过单线程串行化处理大量并发请求,确保高效运行。本文主要简单介绍了 Redis 的核心特性。
|
消息中间件 Kafka 网络安全
消息中间件系列教程(20) -Kafka-集群搭建
消息中间件系列教程(20) -Kafka-集群搭建
1115 0
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
1900 17
Docker镜像-基于DockerFile制作编译版nginx镜像

热门文章

最新文章