使用https的HSTS需要注意的一个问题

Posted dudu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用https的HSTS需要注意的一个问题相关的知识,希望对你有一定的参考价值。

HSTS(HTTP Strict Transport Security) 简单来说就是由浏览器进行http向https的重定向。如果不使用HSTS,当用户在浏览器中输入网址时没有加https,浏览器会默认使用http访问,所以对于https站点,通常会在服务端进行http至https的重定向。如果用了HSTS,就可以减少服务端的这次重定向。

当我们部署https时,发现HSTS的这个用处后,立马就使用了它,使用方法很简单——在响应头中加上 strict-transport-security:max-age=31536000 。

但后来通过星巴克的WiFi访问我们的https站点时发现了一个问题。在浏览器中输入网址后,没有出现星巴克WiFi的登录页面,而是浏览器认为这是不安全连接,不允许访问,只能先访问一个http站点,出现星巴克WiFi登录页面并完成登录后才能访问我们的https站点。

背后的原因很简单,由于我们的站点启用了HSTS,浏览器默认会以https方式发出请求,星巴克的WiFi拦截了请求,以http的方式返回了WiFi登录页面,浏览器收到后一看这不安全,立马停止连接。如果不启用HSTS,在服务端进行重定向,就不会有这个问题。

只要基于http进行验证的WiFi都会有这个问题,所以在部署https时是否启用HSTS需要考虑这个因素。如果你原先启用HSTS,现在想取消,不能直接去掉strict-transport-security响应头,而是要改为 strict-transport-security:max-age=0 ,不然之前使用了HSTS的浏览器在过期之前会一直使用HSTS。

 

以上是关于使用https的HSTS需要注意的一个问题的主要内容,如果未能解决你的问题,请参考以下文章

Chrome绕过HSTS抓取HTTPS

如何仅在 HTTPS 上从 .htaccess 设置 HSTS 标头 [关闭]

https hsts 私密链接

nginxApacheLighttpd启用HSTS

减少网站跳转时间,增强网站数据安全——HSTS 详解

HSTS--提高你的https安全性