疯狂的HSTS

本文涉及的产品
.cn 域名,1个 12个月
简介: 疯狂的HSTS

现象:访问某个域名及任意一个子域名都会强制跳转HTTPS,即使将该域名解析至任意一个站点都会被强制跳转


原因:不恰当设置了HSTS 导致

什么是 HSTS ?


HSTS是 HTTP 严格传输安全(HTTP Strict Transport Security) 的缩写。 这是一种网站用来声明他们只能使用安全连接(HTTPS)访问的方法。 如果一个网站声明了 HSTS 策略,浏览器必须拒绝所有的 HTTP 连接并阻止用户接受不安全的 SSL 证书。 目前大多数主流浏览器都支持 HSTS。

为什么开启后反而影响到了访问?


开启HSTS本身是为了更安全,但是开启前务必确保所有资源必须都必须支持通过HTTPS访问(使用正确有效且被信任的证书)

如何判断一个站点是否开启了HSTS ?


通常在初次请求站点后,站点会在响应的header中增加

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

这意味着站点开启了HSTS,includeSubDomains 和 preload都是可选参数;

includeSubDomains 意味着该域名的所有子域名都将启用HSTS,所以子域名也必须支持HTTPS,不然就是会遇到无法访问(证书不匹配过期均会导致无法访问且浏览器不允许忽略)

preload  预加载列表。简单是将域名加入到浏览器内置的一个列表中,该列表由chrome维护,随浏览器版本更新,这意味着加入会需要相当长时间,而一旦加入只能 等下次浏览器版本更新才能移除

所以要将自己的域名加入列表必须确保能够在较长时间内保持对所有资源的完全 HTTPS 访问

如何判断是否已加入预加载列表


https://hstspreload.org/  登录此网站查询域名是否已在预加载列表内

若还未加入,在调试网站时因为HSTS原因导致出现非预期跳转,需要清理缓存,此时清理浏览器缓存无效,需要清理HSTS缓存 ,浏览器地址里访问下面地址

chrome://net-internals/#hsts  

Edge浏览器也是一样的方法,Delete domain security policies下的文本框中输入要删除的域,然后点击Delete

如果域名已进入了预加载列表,这个删除是不生效的。

如何从预加载列表中移除


可以访问https://hstspreload.org/removal/

输入域名进行提交,注意在提交前必须移除了preload参数(页面有移除的前提条件)

这里提交后并不能立即移除,要等下个浏览器版本更新

相关文章
|
7月前
|
安全 网络安全 数据安全/隐私保护
HTTPS协议详解
HTTPS协议详解
74 1
|
7月前
|
移动开发 安全 网络安全
Https中间人攻击
Https中间人攻击
163 0
|
域名解析 网络协议 安全
记一次 HTTPS 抓包分析和 SNI 的思考
日常听说 HTTPS 是加密协议,那现实中的 HTTPS 流量,是真的完全加密吗?答案是,不一定。原因嘛,抓个包就知道了。我们用 curl 命令触发一下!
375 1
|
存储 安全 算法
https 是否真的安全,https攻击该如何防护,https可以被抓包吗?如何防止呢?
https 是否真的安全,https攻击该如何防护,https可以被抓包吗?如何防止呢?
|
7月前
|
监控 安全 网络安全
什么是https加密协议?
什么是https加密协议?
104 0
|
算法 应用服务中间件 网络安全
Nginx配置HTTPS以及HTTPS原理
Nginx配置HTTPS以及HTTPS原理
280 0
Nginx配置HTTPS以及HTTPS原理
|
Web App开发 安全 数据安全/隐私保护
|
Java 应用服务中间件 网络安全
|
Web App开发 安全 Windows
HTTP/HTTPS抓包工具-Fiddler
HTTP/HTTPS抓包工具-Fiddler
486 0
HTTP/HTTPS抓包工具-Fiddler
|
安全 算法 数据安全/隐私保护
用 HTTPS 就安全了?HTTPS 会被抓包吗?
用 HTTPS 就安全了?HTTPS 会被抓包吗?