web服务HSTS相关问题
发现问题
在使用新设备的时候访问域名,直接输入域名访问,会默认访问 http,但是 web 服务没开启 http 的话就会访问不了。需要手动输入 https://域名..
HSTS
deepseek 搜索结果:
HSTS(HTTP Strict Transport Security) 是一种安全策略机制,用于强制浏览器通过 HTTPS 与服务器通信,防止 HTTP 协议下的中间人攻击(如 SSL Stripping 攻击)。它通过 HTTP 响应头告诉浏览器,在指定时间内(通过 max-age 参数设置),所有与该域名的通信都必须使用 HTTPS。
HSTS 的工作原理
- 首次访问:
当用户首次访问网站时,服务器会在 HTTP 响应头中包含 Strict-Transport-Security 字段。
浏览器收到该字段后,会在指定时间内(max-age)记住该网站必须使用 HTTPS。
- 后续访问:
在 max-age 有效期内,即使用户手动输入 http://,浏览器也会自动将请求转换为 https://。
如果 HTTPS 连接失败(例如证书无效),浏览器会直接拒绝连接,而不是降级为 HTTP。
HSTS 响应头格式
HSTS 通过 HTTP 响应头 Strict-Transport-Security 来启用,常见的格式如下:
1 | Strict-Transport-Security: max-age=31536000; includeSubDomains; preload |
max-age:
指定 HSTS 的有效时间(以秒为单位)。
例如,max-age=31536000 表示有效期为 1 年。
includeSubDomains(可选):
表示 HSTS 策略适用于当前域名及其所有子域名。
例如,如果主域名是 example.com,启用该选项后,sub.example.com 也会强制使用 HTTPS。
preload(可选):
表示希望将域名加入浏览器的 HSTS 预加载列表。
预加载后,即使首次访问,浏览器也会强制使用 HTTPS。
HSTS 的优点
- 防止 SSL Stripping 攻击:
攻击者无法将 HTTPS 连接降级为 HTTP,从而保护用户数据安全。
- 提升安全性:
强制使用 HTTPS,避免用户意外使用不安全的 HTTP 连接。
- 减少重定向延迟:
浏览器直接使用 HTTPS,无需先尝试 HTTP 再重定向。
HSTS 的缺点
- 首次访问风险:
在首次访问时,如果用户通过 HTTP 连接,仍然可能受到攻击。
可以通过加入 HSTS 预加载列表来解决。
- 配置错误可能导致网站不可访问:
如果服务器配置错误(例如 HTTPS 证书无效),浏览器会拒绝连接,用户无法访问网站。
- 回退困难:
一旦启用 HSTS 并设置了较长的 max-age,在有效期内无法回退到 HTTP。
IIS 设置
IIS 网站的绑定里添加 http,然后在 IIS 网站空白页右键,管理网站,HSTS。
启用,将 HTTP 重定向到 HTTPS