2017-12-18 182 views
0

如果我已经从服务器端启用了HSTS标头,那为什么Google Chrome会忽略它?我可以用http自由访问网站。我期待浏览器应该强制网站加载HTTPS只。毕竟,HSTS就是为了这个目的。如果我错了,请纠正我。 参考Video为什么如果存在HSTS标头,Chrome不会强制HTTPS?

Connection:keep-alive 
Content-Encoding:gzip 
Content-Type:text/html; charset=UTF-8 
Date:Mon, 18 Dec 2017 07:15:18 GMT 
Link:<http://example.com/wp-json/>; rel="https://api.w.org/" 
Server:nginx 
Set-Cookie:wfvt_1954975060=5a376b06351b6; expires=Mon, 18-Dec-2017 07:45:18 GMT; Max-Age=1800; path=/; HttpOnly 
Strict-Transport-Security:max-age=63072000; includeSubdomains; 
Transfer-Encoding:chunked 
Vary:Accept-Encoding 

回答

0

Strict-Transport-Security头只在HTTPS页面有效。它在HTTP页面上被忽略 - 如果您想强制用户使用HTTPS,请将它们从所有HTTP页面重定向到HTTPS,并在它们被重定向到的页面上显示Strict-Transport-Security标题。

MDN explains why

注:Strict-Transport-Security忽略浏览器时,您的站点使用HTTP访问;这是因为攻击者可能会拦截HTTP连接并注入标头或将其删除。如果您的站点通过HTTPS访问且没有证书错误,浏览器就知道您的站点具有HTTPS功能,并将遵守Strict-Transport-Security标题。

+0

哇!很高兴知道。感谢澄清。 –

相关问题