我们的服务遍布中国

我们的服务遍布中国
乃至世界

光网所服务的品牌地域与城市
北京 天津 上海 广州 深圳 香港 厦门 江苏 浙江 山东
重庆 长沙 武汉 成都 西安 宁夏 丽江 青海 云南 乌鲁木齐
黑龙江 内蒙古 河北 ...
光网服务与合作的全球各地
美国 加拿大 德国 法国 英国 瑞士 意大利 荷兰
印度 日本 韩国 ...

不论你的品牌在何处
我们都可以提供完善的服务与帮助

致电

0512-56969630
您所在的位置:首页 > SSL证书

如何配置使用HTTP严格传输安全HSTS

发布时间:2017/5/18 15:02:54 浏览:138打印字号:

HTTP严格传输安全即HSTS是某种安全功能,HSTS旨在告知用户使用的浏览器与服务器之间仅HTTPS通信。

如果网站服务器支持HTTP访问并将其重定向到HTTPS访问的话,那么重定向之前的初始化会话是非加密的。

这种情况下攻击者就可以利用中间人攻击手法进行劫持,让访问请求从正常站点跳转到攻击者的恶意站点去。

而HSTS协议则告知浏览器不可以使用HTTP进行连接,在浏览器上自动将所有到该站点的HTTP替换HTTPS。

维基百科上对HSTS协议的描述是可以用来抵御 SSL 剥离攻击,该攻击由Moxie在2009年黑帽大会上发表的。

这种攻击方式主要利用的就是不少用户习惯性点击 HTTP 连接而不会手动把请求的网址改成HTTPS加密连接。

因此可以在 HTTP 连接完成前对请求进行阻止,然后将连接重定向到攻击者伪造的恶意网址上即可窃取数据。

需要注意的是:

在浏览器首次访问网页之前并不知道服务器是否支持 HSTS 协议,因此网站需要通过HTTPS协议告知浏览器。

所以在用户的浏览器初次访问HTTPS站点时即使启用HSTS协议也不能够完全杜绝掉SSL剥离这个攻击手法的。

如何告诉浏览器支持HSTS协议:

在服务器中配置HSTS协议并在客户端发出HTTPS请求时,在HTTP响应头中包含Strict-Transport-Security。

在Nginx中设置HSTS协议:

编辑网站配置文件然后加入HSTS协议代码保存,然后重启Nginx即可开启HSTS协议。实例如下:

server    {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name www.gworg.com gworg.com;
        #开启HTTP严格传输安全HSTS
	add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
        #开启HTTP严格传输安全HSTS
        index index.html index.htm index.php default.html default.htm default.php;
        ssl on;
        ssl_certificate /usr/local/nginx/conf/certificate/www.gworg.com.crt;
        ssl_certificate_key /usr/local/nginx/conf/certificate/www.gworg.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
    }      #修改完成保存后重启Nginx
       service nginx restart

在Apache 2中设置HSTS:

在Apache里编辑网站的配置文件例如/etc/apache2/sites-enabled/website.conf等等:

# Optionally load the headers module:
LoadModule headers_module modules/mod_headers.so
<VirtualHost 67.89.123.45:443>
#开启HTTP严格传输安全HSTS
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
#开启HTTP严格传输安全HSTS
</VirtualHost>