开启HSTS让浏览器强制跳转HTTPS访问
什么是 HSTS Preload List HSTS preload list是 Chrome 浏览器中的 HSTS 预载入列表,在加入列表的网站,再让用户访问时,浏览器会强制 HTTPS 请求服务器,同时避免 HTTP 的入侵。Firefox、Safari、Edge、IE11 浏览器都在采用这个列表。未来国内浏览器也会陆续加入这个策略。 配置需求 申请 SSL 证书(如果使用的是 SHA-1 的证书,过期时间必须早于 2016 年) 所有的 HTTP 定向到 HTTPS 确定所有在用的子域名都成功配置了 HTTPS 输出 HSTS 响应头 add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; max-age 不能低于 1 年(31536000 秒) 必须指定 includeSubdomains 参数 必须指定 preload 参数; 其中: max-age#是必选参数,是一个以秒为单位的数值,它代表着HSTS Header的过期时间,通常设置为1年,即31536000秒 将标头添加Strict-Transport-Security到所有 HTTPS 响应并max-age使用以下标头值逐步提高阶段: 5分钟:max-age=300; includeSubDomains 1周:max-age=604800; includeSubDomains 1个月:max-age=2592000; includeSubDomains includeSubDomains#是可选参数,如果包含它,则意味着当前域名及其子域名均开启HSTS保护 preload#是可选参数,只有当你申请将自己的域名加入到浏览器内置列表的时候才需要使用到它 一旦您确信不会再出现问题,请将期限增加到max-age2 年并将您的网站提交到预加载列表: 2年,要求预载: max-age=63072000; includeSubDomains; preload 示例:让浏览器自动升级请求,访问到 http 资源时自动替换成 https 请求 apache的配置文件里添加头部参数:Upgrade-Insecure-Requests 如下边的.htaccess内容: <IfModule mod_headers.c> 三、提交申请 当然,加入到了HSTS Preload List后,你可能还需要等待1-2月,待新版本的Chrome和Chromium、Firefox、IE等发布后,你的域名算是正式被各大浏览器承认并强制使用Https访问了,你可以在Chrome浏览器的地址框中输入“chrome://net-internals/#hsts”查看。 如果不用注销网址 https://hstspreload.org/ 官方也提供了一个申请删除HSTS Preload List,不过需要注意的是撤销HSTS Preload List和加入HSTS Preload List一样,花费的时间可能需要几个月以上,所以申请HSTS Preload List前一定要谨慎。 提交申请过后,需要等待 1-2 月 等待下一次的浏览器版本更新,就会成功内置在浏览器内部。 可以用 Chrome 浏览器输入 chrome://net-internals/#hsts 进行查看是否内置成功 注意:一旦提交之后,就无法撤销,请保持域名的 HTTPS 正常访问。如不想使用 HSTS 删除后域名恢复生效时间会相对较长。 恭喜您!您的网站已经成功提交 HSTS 预加载策略! 附:查询域名是否支持HSTS 每个浏览器查询方式不一样,部分浏览器参如如下: 1、Edge浏览器:edge://net-internals/#hsts 2、Chrome浏览器:chrome://net-internals/#hsts 3、Firefox浏览器: 1)打开 Firefox 浏览器,在浏览器中输入“about:config”并回车 2)在搜索框中输入“security.mixed_content.block_active_content”,点击对话框中的“true”,将其设置为“false” 3)再次输入“security.mixed_content.block_display_content”,将其设置为“false” 4)关闭 Firefox 浏览器,并重新打开即可 HSTS 存在的坑 纯 IP 的请求,HSTS 没法处理,比如 http://2.2.2.2 , 即便响应头中设置了 STS,浏览器也不会理会(未测试) HSTS 只能在 80 和 443 端口之间切换,如果服务是 8080 端口,即便设置了 STS,也无效(未测试) 如果浏览器证书错误,一般情况会提醒存在安全风险,然是依然给一个链接进入目标页,而 HSTS 则没有目标页入口,所以一旦证书配置错误,就是很大的故障了 如果服务器的 HTTPS 没有配置好就开启了 STS 的响应头,并且还设置了很长的过期时间,那么在你服务器 HTTPS 配置好之前,用户都是没办法连接到你的服务器的,除非 max-age 过期了。 HSTS 能让你的网站在 ssllab 上到 A+ 写在最后:HSTS在全站HTTPS下有一个较大的正向作用,推荐使用。
|
|
最新文章 |
图片主题 | ||||
|
||||
热门文章 |
推荐文章 | ||||
|
||||
相关文章 |
便民服务 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||