A-A+

开启HSTS教程

2017年12月01日 Apache, LiteSpeed, Nginx, SSL 暂无评论 阅读 25 次
文章目录
[隐藏]

HSTS简介

 

HTTP严格传输安全(英语:HTTP Strict Transport Security,缩写:HSTS)是一套由互联网工程任务组发布的互联网安全策略机制。网站可以选择使用HSTS策略,来让浏览器强制使用HTTPS与网站进行通信,以减少会话劫持风险。

HSTS优点

HSTS可以用来抵御SSL剥离攻击。SSL剥离攻击是中间人攻击的一种,由Moxie Marlinspike于2009年发明。他在当年的黑帽大会上发表的题为“New Tricks For Defeating SSL In Practice”的演讲中将这种攻击方式公开。SSL剥离的实施方法是阻止浏览器与服务器创建HTTPS连接。它的前提是用户很少直接在地址栏输入https://,用户总是通过点击链接或[失效链接]3xx重定向,从HTTP页面进入HTTPS页面。所以攻击者可以在用户访问HTTP页面时替换所有https://开头的链接为http[失效链接]://,达到阻止HTTPS的目的。
HSTS可以很大程度上解决SSL剥离攻击,因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。
另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告,但是许多用户会忽略警告。HSTS解决了这一问题,一旦服务器发送了HSTS字段,用户将不再允许忽略警告。

HSTS不足

用户首次访问某网站是不受HSTS保护的。这是因为首次访问时,浏览器还未收到HSTS,所以仍有可能通过明文HTTP来访问。

由于HSTS会在一定时间后失效(有效期由max-age指定),所以浏览器是否强制HSTS策略取决于当前系统时间。部分操作系统经常通过网络时间协议更新系统时间,如Ubuntu每次连接网络时,OS X Lion每隔9分钟会自动连接时间服务器。攻击者可以通过伪造NTP信息,设置错误时间来绕过HSTS。

 

 

浏览器支持

 

Chromium和Google Chrome从4.0.211.0版本开始支持HSTS

Firefox 4及以上版本

Opera 12及以上版本

Safari从OS X Mavericks起

Internet Explorer和Microsoft Edge从Windows 10开始支持

 

 

开启HSTS

1.需要先将HTTP强制跳转到HTTPS链接

2.Apache与Nginx需要添加在监听的443端口的配置文件.Vestacp是在snginx.conf里面.

 

Apache

 

编辑站点配置文件在443端口区修改为以下内容

 

 

Lighttpd

增加到 Lighttpd 配置文件:/etc/lighttpd/lighttpd.conf

 

 

Nginx

Nginx最为简单,在server_name下面另起一行增加即可

LNMP编辑你的网站目录下的: /usr/local/nginx/conf/vhost/xxx.com.conf

 

 

IIS

需要第三方组件:http://hstsiis.codeplex.com

 

修改好配置文件后,重启WEB服务器即可.

 

参数说明

其中:

  • max-age是必选参数,是一个以秒为单位的数值,它代表着HSTS Header的过期时间,通常设置为1年,即31536000秒。
  • includeSubDomains是可选参数,如果包含它,则意味着当前域名及其子域名均开启HSTS保护。
  • preload是可选参数,只有当你申请将自己的域名加入到浏览器内置列表的时候才需要使用到它。

 

HSTS Preload List

加入HSTS Preload List

打开:

https://hstspreload.org/

 

输入你的域名后点击“"Check HSTS preload status and eligibility

 

 

给我留言