超级安全已部署! —— 全域名已经启用 HSTS

0

Loading

8102 年啦。 HTTP/2,HTTPS 等等也该普及咯。

其实国外都在大力推进 HTTPS 的普及,Google 已经把所有没有采用 HTTPS 协议的网站标记为不安全,并不建议用户输入任何敏感信息。HTTPS 固然安全,但是有一种叫做 “中间人攻击” 的攻击手段,可以把 HTTPS 强制降级到 HTTP ,进一步实现攻击的目的。HSTS ,即 HTTP Strict Transport Security ,就是用来告诉浏览器 “这个网站只能用 HTTPS 协议进行访问,并且不允许用户忽略任何相关错误(证书错误等等)”,从而避免 HTTPS 被降级到 HTTP 。

然而第一次访问网站的时候,由于 HSTS 信息是加在 HTTP 协议头中传输的,所以即使网站启用了 HSTS ,用户在第一次访问的时候,将仍然不受 HSTS 保护。所以网络上维护着这样一份列表,叫做 “HSTS Preload List” ,用来告诉浏览器其中的网站都启用了 HSTS,这样网站在第一次被访问的时候就可以受到 HSTS 保护(主流浏览器都支持 HSTS Preload List)。

想要把网站添加到 HSTS Preload List,需要满足以下几个条件:

  1. 主域名被访问时,强制跳转到 HTTPS ( 在 Nginx 中,可以用 301 重定向解决);
  2. 主域名下的所有子域名都必须启用 HTTPS 协议,并且证书有效、 TLS 版本符合要求;
  3. 使用 HTTP 协议访问时,网站服务器返回的 HTTP 协议头需要带有 HSTS 头( 在 Nginx 中,可以用 add_header 解决)。

具体要求可以到 HSTS Preload List 的维护网站看到:点击前往

我的主域名 ( npbeta.com)也是通过这个页面添加的咯,现在正在审核。

2019.01.12 更新:我的主域名已经被添加到 HSTS Preload List 咯: