-
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.landiannews.com landiannews.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.landiannews.com.crt;
ssl_certificate_key /usr/local/nginx/conf/certificate/www.landiannews.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>
以上内容由 LCTT 编译并发布在Linux中国,英文原文请点击这里查看。
如何配置使用HTTP严格传输安全HSTS
1620人参与 |分类: 站长百科|时间: 2017年09月23日
相关文章
- 2020-01-10作为站长应该懂得的7大搜索引擎站长平台
- 2019-10-22个人博客网站用什么程序比较好?
- 2019-10-12头条搜索站长平台如何添加网站和sitemap文件?附图文教程
- 2019-09-26PHP环境下是选择Apache和Nginx?
- 2019-09-11网站运维人员必做的7项网站维护工作
- 2019-08-26现在还要必要坚持做PC网站或个人博客吗?
- 2019-08-03宝塔面板+云锁nginx自编译web防护的图文教程
- 2019-07-08解决国内主机服务器 WordPress 后台异常卡顿的问题
- 2019-07-02网站启用SSL自动301跳转到HTTPS教程
- 2019-06-06宝塔/BT面板内存占用MySQL频繁崩溃自动重启方法
评论专区德信商城