目录
- 前言
- 禁用HSTS
- 禁止重定向到https
- 关闭 HSTS 和设置 ssl-redirect 为 false 的区别
前言
客户请求经过ingress到服务后,默认加上了strict-transport-security,导致客户服务跨域请求失败,具体Response Headers信息如下;
分析
nginx-ingress-controller组件默认是开启HSTS的,有些浏览器第一次基于PLAIN HTTP访问时,服务端(开启HSTS)会在返回给客户端的响应头里携带Non-Authoritative-Reason: HSTS字段,说明服务端支持HSTS,当客户端也支持的情况下下次会直接以HTTPS方式访问服务端。服务端返回的响应头消息体中包含有307 Internal Redirect状态码,具体如下图所示。
nginx-ingress-controller的官方
禁用HSTS
在nginx-ingress-controller对应的config-map中,配置hsts=false
其他控制器,比如traefik,也有类似的配置
在浏览器端HSTS默认是有缓存的,当关闭nginx-ingress-controller组件的HSTS后,记得清理缓存和cookie
禁止重定向到https
-
全局设置:
在nginx-ingress-controller对应的config-map中,配置
ssl-redirect=false -
单个ingress设置:
找到对应的ingress,设置注解(annotations): nginx.ingress.kubernetes.io/ssl-redirect=false
关闭 HSTS 和设置 ssl-redirect 为 false 的区别
关闭 HSTS 和设置 ssl-redirect 为 false 在 Nginx Ingress Controller 中是两个不同的配置,它们各自有不同的作用和影响。
关闭 HSTS
作用:
HSTS(HTTP Strict Transport Security)是一种安全策略,它告诉浏览器只能通过 HTTPS 访问网站。关闭 HSTS 意味着浏览器不再被强制要求使用 HTTPS 访问网站。
影响:
关闭后,之前访问过该网站的浏览器可能仍然会强制使用 HTTPS(因为 HSTS 策略在浏览器中有缓存),但新访问的浏览器将不再受此限制。
安全性降低:关闭 HSTS 可能会使网站更容易受到中间人攻击(MITM),因为攻击者可以拦截并篡改不安全的 HTTP 请求。
配置方式:
在 Nginx Ingress Controller 的 ConfigMap 中设置 hsts=false。
设置 ssl-redirect 为 false
作用:
ssl-redirect 注解用于控制是否将 HTTP 请求重定向到 HTTPS。将其设置为 false 意味着 Nginx Ingress Controller 将不再自动将 HTTP 请求重定向到 HTTPS。
影响:
HTTP 请求将不再被重定向到 HTTPS,用户可以通过 HTTP 访问网站。
安全性降低:允许 HTTP 访问意味着数据传输不再加密,可能会暴露敏感信息。
配置方式:
可以通过两种方式设置:
全局设置(尽管这不是标准做法,因为通常这个设置是通过 Ingress 资源的注解来实现的):在 Nginx Ingress Controller 的 ConfigMap 中尝试设置(但请注意,这可能需要额外的配置或修改,因为 Nginx Ingress Controller 的官方文档可能并没有直接提到可以在 ConfigMap 中设置 ssl-redirect)。
针对单个 Ingress 设置:在特定的 Ingress 资源中添加注解 nginx.ingress.kubernetes.io/ssl-redirect: “false”。
区别总结
作用不同:关闭 HSTS 是告诉浏览器不再强制使用 HTTPS 访问网站;设置 ssl-redirect 为 false 是控制 Nginx Ingress Controller 不再将 HTTP 请求重定向到 HTTPS。
影响范围不同:关闭 HSTS 影响的是浏览器的行为;设置 ssl-redirect 为 false 影响的是 Nginx Ingress Controller 的行为。
安全性影响:两者都会降低网站的安全性,但方式不同。关闭 HSTS 可能会使网站更容易受到中间人攻击;设置 ssl-redirect 为 false 则允许不安全的 HTTP 访问。
在生产环境中,通常建议保持 HSTS 和 HTTPS 重定向开启,以确保数据传输的安全性和用户隐私的保护。如果确实需要关闭这些设置,请务必充分了解其安全性和潜在风险。