ChromeHSTS异常导致无法访问HTTPS网页

今天小伙伴突然告诉我,他的电脑上打不开网页了,然后把以下截图给我发了过来:
Chrome HSTS异常导致无法访问HTTPS网页
了解到他是用shadowsocks访问谷歌的时候网页打不开,之前是都是OK的。简单让他做了下网络连通性测试:ping域名,telnet网站的80和443端口,发现网络是OK的。然后仔细看了下他的报错信息:
NET::ERR_CERT_COMMON_NAME_INVALID,详情页里可以看到是“因为此网站使用了HSTS”,于是让他尝试清理下Chrome上HSTS安全设置策略,清理后恢复正常,具体操作如下:
在Chrome浏览器中输入:chrome://net-internals/#hsts:
Chrome HSTS异常导致无法访问HTTPS网页
找到相应的"delete domain security policies",输入访问有问题的网站域名,然后点击删除(delete):
Chrome HSTS异常导致无法访问HTTPS网页
找到"Query HSTS/PKP domain",输入刚才删除的域名,查询结果返回“Not Found”,代表已经删除成功:
Chrome HSTS异常导致无法访问HTTPS网页

成都创新互联是一家集网站建设,渭南企业网站建设,渭南品牌网站建设,网站定制,渭南网站建设报价,网络营销,网络优化,渭南网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

之后再重新访问之前的页面,此时网页能够正常打开。
问题虽然已经解决,那么我们本着知其然,且知其所以然的原则,我们总结一下:
报错是HSTS的问题,那么我们尝试清理HSTS的设定,重新获取一下即可。那么什么是HSTS呢:
HSTSis HTTP Strict Transport Security: a way for sites to elect to always use HTTPS. See https://www.chromium.org/hsts, 是国际互联网工程组织IETF正在推行一种新的Web安全协议,HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。
采用HSTS协议的网站将保证浏览器始终连接到该网站的HTTPS加密版本,不需要用户手动在URL地址栏中输入加密地址。
该协议将帮助网站采用全局加密,用户看到的就是该网站的安全版本。
HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。服务器开启HSTS的方法是,当客户端通过HTTPS发出请求时,在服务器返回的超文本传输协议响应头中包含Strict-Transport-Security字段。非加密传输时设置的HSTS字段无效。
比如,https://xxx 的响应头含有Strict-Transport-Security: max-age=31536000; includeSubDomains。这意味着两点:
在接下来的一年(即31536000秒)中,浏览器只要向xxx或其子域名发送HTTP请求时,必须采用HTTPS来发起连接。比如,用户点击超链接或在地址栏输入 http://xxx/ ,浏览器应当自动将 http 转写成 https,然后直接向 https://xxx/ 发送请求。
在接下来的一年中,如果 xxx 服务器发送的TLS证书无效,用户不能忽略浏览器警告继续访问网站。
进入浏览器的inspeck模式,我们可以看到Response Headers如下:
Chrome HSTS异常导致无法访问HTTPS网页

小伙伴的电脑很可能是因某些原因导致待访问网站的HSTS失效了,所以清理之后,重新认证一下即恢复正常。


名称栏目:ChromeHSTS异常导致无法访问HTTPS网页
URL网址:http://scyanting.com/article/ihjjes.html