使用HTTP传输安全HSTS配置方法
发布日期:2018-10-11HSTS协议可以用来抵御SSL剥离攻击,该攻击由Moxie在2009年黑帽大会上发表的。这种攻击方式主要利用的就是不少用户习惯性点击HTTP连接而不会手动把请求的网址改成HTTPS加密连接。因此可以在HTTP连接完成前对请求进行阻止,然后将连接重定向到攻击者伪造的恶意网址上即可窃取数据。
HTTP严格传输安全即HSTS是某种安全功能,HSTS旨在告知用户使用的浏览器与服务器之间仅HTTPS通信。如果网站服务器支持HTTP访问并将其重定向到HTTPS访问的话,那么重定向之前的初始化会话是非加密的。这种情况下攻击者就可以利用中间人攻击手法进行劫持,让访问请求从正常站点跳转到攻击者的恶意站点去。而HSTS协议则告知浏览器不可以使用HTTP进行连接,在浏览器上自动将所有到该站点的HTTP替换HTTPS。
需要注意的是:
在浏览器首次访问网页之前并不知道服务器是否支持 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>以上,是为大家分享的“使用HTTP传输安全HSTS配置方法”的全部内容,如果用户遇到的问题不能解决,可通过wosign官网客服寻求帮助,凡是选择wosign ssl证书的网站用户,wosign可提供免费一对一的ssl证书技术部署支持,免除后顾之忧。
相关资讯
在网站全站HTTPS后,如果用户手动敲入网站的HTTP地址,或者从其它地方点击了网站的HTTP链接,通常依赖于服务端301/302跳转才能使用HTTPS服务。而第一次的HTTP请求就有可能被劫持,导致请求无法到达服务器,从而构成HTTPS降级劫持。这个问题目前可以通过HSTS(HTTP Strict Transport Security,RFC6797)来解决。
HSTS可以禁止浏览器使用无效证书(浏览器的默认策略是让用户决定是否放行,而用户往往因为不能区分无效是因为配置问题还是攻击而选择继续访问从而导致遭受网络攻击)