OSXLion部署服务器开启HSTS的方法是什么?

日期: 栏目:文章分享 浏览:759 评论:0

这个问题目前有两种解决方案:

选项 1:

浏览器中预设的HSTS域名列表就是上面提到的HSTS List解决方案。此域名列表分发并硬编码到主要的 Web 浏览器中。访问此列表中的域的客户端将主动使用 HTTPS 并拒绝使用 HTTP 访问该站点。

选项 2:

将 HSTS 信息添加到域名系统记录。但这需要保证DNS的安全,即需要部署域名系统安全扩展。

其他可能的问题

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

谷歌浏览器怎么清除浏览记录_配置burpsuit谷歌浏览器证书及HSTS问题处理_二建问题证书处理

解决办法是对NTP信息进行认证,或者严格禁止NTP显着增加或减少时间。例如:8 时间每7天更新一次,每次NTP设置的时间与当前时间不得超过15小时。

支持HSTS浏览器

目前主流浏览器已经支持HSTS功能,具体请参考以下列表:

HSTS 部署

服务器开启HSTS的方式是:客户端通过HTTPS发送请求时,服务器返回的超文本传输​​协议响应头中包含--字段。非加密传输设置的HSTS数组无效。

配置burpsuit谷歌浏览器证书及HSTS问题处理_谷歌浏览器怎么清除浏览记录_二建问题证书处理

最好的部署解决方案是部署在靠近用户的位置。例如,如果架构有后端反向代理和前端Web服务器,最好在后端代理配置HSTS。服务器层配置 HSTS。如果 Web 服务器没有明确支持 HSTS配置burpsuit谷歌浏览器证书及HSTS问题处理配置burpsuit谷歌浏览器证书及HSTS问题处理,它可以使用降低响应头的机制。如果一切都失败了,可以在应用层降低 HSTS。

HSTS开启比较简单,在对应的中加入如下信息即可:

Strict-Transport-Security: max-age=63072000; includeSubdomains;preload;

--是数组名,

max-age 表示 HSTS 在客户端的有效时间。

表示对所有子域都有效。

是浏览器外部的域名列表。

HSTS 策略只能在 HTTPS 响应中设置,网站必须使用默认的 443 端口;必须使用域名,而不是IP。因此,有必要将 HTTP 重定向到 HTTPS。如果允许在明文响应中设置 HSTS 标头,则中间人攻击者可以通过将 HSTS 信息注入普通站点进行 DoS 攻击。

启用 HSTS

$ vim /etc/apache2/sites-available/hi-linux.conf

# 开启HSTS需要启用headers模块
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so

  ServerName www.hi-linux.com
  ServerAlias hi-linux.com
...
 #将所有访问者重定向到HTTPS,解决HSTS首次访问问题。
  RedirectPermanent / https://www.hi-linux.com/


...
# 启用HTTP严格传输安全
  Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
...

重启服务

$ service apche2 restart

在 Nginx 上启用 HSTS

$ vim /etc/nginx/conf.d/hi-linux.conf
server {
   listen 443 ssl;
   server_name www.hi-linux.com;
   add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
...
}
server {
   listen 80;
   server_name www.hi-linux.com;
   return 301 https://www.hi-linux.com$request_uri;
...
}

重启Nginx服务

$ service nginx restart

IIS 启用 HSTS

在 IIS 上启用 HSTS 需要第三方模块

测试是否设置成功

设置完成后,可以使用curl命令验证设置是否成功。如果结果是丰富的--数组,则设置成功。

$ curl -I https://www.hi-linux.com
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 27 May 2017 03:52:19 GMT
Content-Type: text/html; charset=utf-8
...
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
...

对于HSTS和HSTS List,只要不保证永远提供HTTPS服务,建议不要开启HTTPS。因为一旦HSTS生效,之前的老用户会在max-age到期之前被重定向到HTTPS,导致网站无法正常访问。唯一的办法是获得一个新的域名。

标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看