HTTP严格传输安全协议(HSTS)安装指南
HSTS原理简介
HTTP严格传输安全协议(HSTS)通过服务器响应头Strict-Transport-Security
强制客户端(如浏览器)使用HTTPS与服务器建立连接,主要作用:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
<system.webServer><security><rewrite><rules><rule name="HSTS"><action type="Rewrite" url="/" /><conditions><add input="{HTTP_HOST}" pattern="^example.com$" negate="false" /><add input="{HTTP_CF_IPCity}" pattern="^d{1,3}.d{1,3}.d{1,3}.d{1,3}$" negate="true" /></conditions><serverVariables><set name="HTTP_StrictTransportSecurity" value="max-age=31536000; includeSubDomains" /></serverVariables></rule></rewrite></security></system.webServer>
Strict-Transport-Security: max-age=31536000; includeSubDomains
配置参数说明
参数 | 说明 | 建议值 |
---|---|---|
max-age | 强制HTTPS有效期(秒) | 31536000(1年) |
includeSubDomains | 是否包含所有子域名 | 建议启用 |
preload | 是否提交到HSTS预加载列表 | 可选(需满足严格要求) |
验证配置有效性
-
Chrome开发者工具:
- F12打开控制台 → Security → 查看HSTS状态
- 检查
Strict-Transport-Security
响应头
-
在线检测工具:
问题现象 解决方案 配置后部分页面无法访问 检查SSL证书有效性,清除浏览器缓存 子域名仍可HTTP访问 确保 includeSubDomains
参数正确配置浏览器提示HSTS错误 检查响应头大小写(应为 Strict-Transport-Security
)
相关问题与解答
Q1:HSTS和HTTPS有什么区别?
A1:HTTPS是加密传输协议,解决数据明文传输问题;HSTS是安全策略协议,强制客户端使用HTTPS并拒绝HTTP请求,两者需配合使用,但属于不同层面的安全机制。Q2:如何撤销已配置的HSTS?
A2:HSTS一旦生效无法立即撤销,需等待max-age
时间过期,应急处理方法:- 立即删除HSTS配置
- 更换主域名SSL证书(私钥+公钥)
- 联系CDN服务商刷新缓存
- 通过Google Search Console提交移除预加载申请(如