上一篇
HTTP严格传输安全协议怎么看配置
- 行业动态
- 2025-04-27
- 4150
查看HTTP严格传输安全协议(HSTS)配置可通过以下方式:检查HTTP响应头中是否包含
Strict-Transport-Security
字段,或使用在线工具(如SSL Labs)测试网站安全等级,浏览器开发者工具的”安全”标签页也会显示 HSTS什么是HTTP严格传输安全协议(HSTS)?
HSTS(HTTP Strict Transport Security)是一种Web安全策略,通过声明性HTTP头字段告诉浏览器“必须始终通过HTTPS访问当前域名”,即使用户输入http://
也会自动升级为https://
,它能有效防止:
- 降级攻击(如中间人改动请求为HTTP)
- Cookie劫持(非安全上下文下的Cookie泄露)
- 协议混淆攻击(如HTTPS站点被强制降级为HTTP)
如何查看HSTS配置?
方法1:通过浏览器开发者工具
- 打开目标网站(如
https://example.com
)。 - 按F12打开开发者工具,切换到“网络(Network)”标签。
- 刷新页面,点击任意请求的“Headers”标签。
- 查找
Strict-Transport-Security
字段,格式如下:Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
方法2:使用在线工具检测
工具名称 | 网址 | 功能说明 |
---|---|---|
HSTS检测器 | https://hstspreload.org/ | 检查域名是否已加入HSTS预加载列表 |
SecurityHeaders.io | https://securityheaders.io/ | 综合检测HSTS及其他安全头配置 |
方法3:命令行工具(Curl)
执行命令:
curl -I -k https://example.com
在响应头中查找Strict-Transport-Security
字段。
HSTS关键参数解析
参数 | 作用 | 示例 |
---|---|---|
max-age=秒数 | 指定浏览器强制使用HTTPS的时间(秒),建议至少31536000 (1年) | max-age=31536000 |
includeSubDomains | 是否对所有子域名生效 | 添加; includeSubDomains |
preload | 是否申请加入浏览器根证书预加载列表 | 需单独提交至hstspreload.org |
常见问题与注意事项
HSTS生效后如何撤销?
无法直接撤销!一旦浏览器记住HSTS策略,即使服务器删除该头字段,仍会强制HTTPS访问,直到max-age
时间过期。HSTS与HTTPS的关系?
- HTTPS:加密传输,依赖证书。
- HSTS:强制客户端使用HTTPS,解决“首次连接不安全”问题。
- 组合效果:HTTPS提供加密,HSTS强制使用加密。
相关问题与解答
问题1:如何配置HSTS?
解答:
在服务器配置文件中添加以下响应头(根据服务器类型调整语法):
- Nginx:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
- Apache:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
- Node.js:
res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains; preload');
问题2:HSTS预加载(HPKP)是什么?
解答:
HSTS预加载(HTTPS Public Key Pinning)是谷歌维护的浏览器根证书预加载列表,将域名提交至hstspreload.org
后,浏览器会直接信任该域名的证书,无需等待HSTS生效,但需注意:
- 提交后无法修改证书颁发机构。
- 仅支持
includeSubDomains
且max-age>18周