当前位置:首页 > 行业动态 > 正文

HTTP严格传输安全协议怎么搭建

要搭建HTTP严格传输安全(HSTS),需先部署有效SSL/TLS证书,然后在服务器配置中添加 Strict-Transport-Security: max-age=31536000响应头,设置强制HTTPS连接的有效期(如1年),确保全站支持HTTPS后,通过此头部声明实现浏览器强制使用加密协议,防止协议降级及劫持攻击

HTTP严格传输安全协议(HSTS)搭建指南

前提条件

  1. 有效SSL/TLS证书

    • 必须为域名部署受信任的SSL/TLS证书(DV/OV/EV)
    • 推荐使用Let’s Encrypt免费证书或付费企业级证书
  2. 全站HTTPS支持

    • 网站所有资源(图片/JS/CSS等)必须通过HTTPS加载
    • 禁止混合内容(HTTP资源会被浏览器拦截)

核心配置步骤

服务器类型 配置位置 指令示例 生效范围
Apache .htaccess/httpd.conf Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" 当前域名及子域
Nginx nginx.conf add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always; 当前域名及子域
IIS web.config <system.webServer> <httpProtocol> <customHeaders> <add name="Strict-Transport-Security" value="max-age=15768000; includeSubDomains; preload" /> </customHeaders> </httpProtocol> </system.webServer> 当前域名及子域
Cloudflare WAF规则 通过页面设置HSTS规则 CDN全局生效

关键参数说明

参数 作用
max-age=秒数 强制HTTPS的时长(建议≥15768000秒=18周)
includeSubDomains 是否包含所有子域名
preload 申请加入浏览器根证书预加载列表(需满足严格要求)

浏览器预加载申请

  1. 访问 https://hstspreload.org
  2. 提交域名并验证:
    • 直接通过HTTPS访问(无重定向)
    • 无外部链接指向非HTTPS资源
    • 证书链完整且有效
  3. 审核周期约7-14天

验证方法

  1. Chrome开发者工具

    • F12 → Network → Header查看Strict-Transport-Security响应头
  2. 在线检测工具
    https://www.ssllabs.com/ssltest/ 或 https://securityheaders.io

注意事项

  • 不可逆性:一旦浏览器记录HSTS策略,即使服务器删除该头信息,策略仍会持续到max-age到期
  • 证书管理:更新证书时需保证无缝切换,避免出现证书错误导致网站不可访问
  • 兼容性:IE11+支持,移动设备需iOS5+/Android4+

常见问题与解答

Q1:HSTS生效后如何紧急撤销?
A:无法直接撤销,需等待max-age时间到期,应急方案:

  1. 立即申请新证书并修复问题
  2. 修改DNS解析到临时HTTPS站点
  3. 联系浏览器厂商申请特殊撤销(非常难实现)

Q2:HSTS与HTTPS强制跳转有什么区别?
A:
| 特性 | HSTS | HTTPS强制跳转 |
|———————|——————————-|——————————–|
| 防护级别 | 浏览器级强制 | 服务器级跳转 |
| 抗改动能力 | 防止中间人修改跳转 | 可能被XSS/劫持修改 |
| 首次访问保护 | 预加载机制保障 | 首次仍需明文传输风险 |
| 子域名覆盖 | 自动包含所有子域 | 需单独配置每个子域 |

0