我们都知道, HTTP站点使用明文进行传输安全性较低 ,而HTTPS的加密网站拥有较高的安全性。为了提高安全性,通常我们都会将HTTP页面重定向到HTTPS的页面,即将80端口重定向到443。

请求的过程可以简化为下面几步:

  1. 在浏览器中输入http://aaa.com网址
  2. 浏览器向服务器发起http请求
  3. 服务器接收到请求后,返回301/302重定向到https
  4. 浏览器收到重定向响应,重新向服务器发起https请求
  5. 接下来就是https的安全数据传输了

但在实际使用过程中,会发生一些情况,偶尔会出现访问http://aaa.com却跳转到了bbb.com而不是https://aaa.com,然后直接访问https://aaa.com即一切正常。这种情况,通常就是我们说的“网站被劫持了”。

出现这种情况的原因,就是因为上述过程中的第1、2、3步过程中,使用的是明文传输,能够被“中间人”篡改。

HSTS安全协议,则会将简化上述过程转化为

  1. 在浏览器输入http://aaa.com网址
  2. 浏览器内部307跳转,请求自动变更为https://aaa.com
  3. 浏览器向服务器发起https请求
  4. 接下来就是https的安全数据传输

因为这中间不会有与服务器进行明文通信的环节,所以可以有效地减少此类的劫持。

如何配置HSTS

第一步,依次进入 CDN加速 -> 域名加速,选择需要操作的域名,找到“ HSTS Web安全协议 ”,如下图

未设置前

第二步,根据网站自身情况进行设置,如下图

设置后

选项说明

有效时间:选择半年或一年,都可让浏览器在未来半年或一年内对站点有效

。选项,0天(此项可取消之前的强制效果) ,则可撤消之前的设置

有效范围:即是否对域名下的所有多级子域名有效,若选择了所有子域名项,那么要求该域名的所有站点(包含多级域名)都是使用了HTTPS

Preload(高级参数)
HSTS preload list 是 Chrome 浏览器中的 HSTS 预载入列表,在该列表中的网站,使用 Chrome 浏览器访问时,会自动转换成 HTTPS


注意:HSTS 安全协议的自动跳转实现,是至少要访问过一次启用了该功能的https站点。即若第一次访问http后,下一次再次访问http时,浏览器才会自动跳转至https站点。

警告:启了该协议的站点,必须保证开启了https且端口为443,否则会出现不能访问的情况