上一篇
HTTP严格传输安全协议如何看配置
- 行业动态
- 2025-04-27
- 2
通过浏览器开发者工具查看响应头中的”Strict-Transport-Security”字段,或使用在线HSTS检测工具查询域名
什么是HTTP严格传输安全协议(HSTS)?
HSTS(HTTP Strict Transport Security)是一种网络安全策略,通过服务器响应头 Strict-Transport-Security
强制客户端(如浏览器)仅通过HTTPS与服务器建立连接,即使用户输入http://
,浏览器也会自动升级为https://
,防止中间人攻击和协议降级攻击。
如何查看HSTS配置?
通过浏览器开发者工具查看
以Google Chrome为例:
- 打开目标网站(需通过HTTPS访问)。
- 按
F12
或右键选择 检查 打开开发者工具。 - 切换到 Network(网络) 标签页,刷新页面。
- 点击任意请求的条目,在右侧 Headers(响应头) 中查找
Strict-Transport-Security
字段。
示例响应头:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
通过命令行工具(如cURL)查看
使用cURL
命令获取HTTP响应头:
curl -I https://example.com
输出中查找 Strict-Transport-Security
:
HTTP/2 200
...
Strict-Transport-Security: max-age=63072000
通过在线工具检测
使用网站安全检测工具(如 SecurityHeaders.io)输入域名,可自动分析HSTS配置。
HSTS配置参数解析
参数 | 作用描述 |
---|---|
max-age=秒数 | 浏览器强制使用HTTPS的时长(单位:秒),默认值为0(不启用HSTS)。 |
includeSubDomains | 是否对子域名生效(如www.example.com 和sub.example.com 均受约束)。 |
preload | 提交域名到浏览器根证书预加载列表(需符合严格要求)。 |
常见问题与解答
问题1:为什么HSTS不生效?
可能原因:
- 未通过HTTPS访问网站(HSTS仅在HTTPS响应中生效)。
max-age
值过小或未设置。- 浏览器已缓存旧的HSTS策略(可通过清除缓存或换浏览器测试)。
问题2:如何强制所有子域名启用HSTS?
解答:
在服务器配置中添加 includeSubDomains
参数。
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
此配置会将HSTS策略应用到所有子域名。
相关工具推荐
工具类型 | 推荐工具 |
---|---|
浏览器插件 | HSTS Preload Toolkit(检测并提交域名到预加载列表) |
命令行工具 | curl 、openssl (检查证书和HSTS头) |
在线检测平台 | HTTPSter、[SecurityHeaders.io](https{securityheaders.io |