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

HTTP严格传输安全协议如何安装

通过服务器配置添加Strict-Transport-Security响应头,启用HTTPS并提交域名至hstsp

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

HSTS原理简介

HTTP严格传输安全协议(HSTS)通过服务器响应头Strict-Transport-Security强制客户端(如浏览器)使用HTTPS与服务器建立连接,主要作用:

  • 防止协议降级攻击
  • 防止Cookie劫持
  • 强制所有子域名使用HTTPS

安装前提条件

  1. 有效SSL证书:必须已部署受信任的SSL/TLS证书
  2. 服务器配置权限:需要修改网站服务器配置文件
  3. 域名所有权验证:需完成域名所有权验证

主流服务器配置方法

服务器类型 配置文件路径 配置指令 生效范围
Apache .htaccess/apache2/sites-available/.conf Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" 当前虚拟主机
Nginx nginx.conf/sites-available/.conf add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; 当前服务器块
IIS web.config <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> 整个站点
AWS ELB 负载均衡器监听器 在”自定义HTTP标头”添加键值对:Strict-Transport-Security: max-age=31536000; includeSubDomains 所有后端实例

配置参数说明

参数 说明 建议值
max-age 强制HTTPS有效期(秒) 31536000(1年)
includeSubDomains 是否包含所有子域名 建议启用
preload 是否提交到HSTS预加载列表 可选(需满足严格要求)

验证配置有效性

  1. Chrome开发者工具

    HTTP严格传输安全协议如何安装  第1张

    • F12打开控制台 → Security → 查看HSTS状态
    • 检查Strict-Transport-Security响应头
  2. 在线检测工具

    • https://hstspreload.org/
    • https://securityheaders.io/

注意事项

  1. 必须启用HTTPS:未部署SSL证书时配置HSTS会导致全站不可访问
  2. 缓存机制影响:CDN节点可能需要额外配置
  3. 证书有效期:建议使用2年以上有效期的证书
  4. 兼容性处理:需考虑旧版浏览器支持(IE11+)

常见问题处理

问题现象 解决方案
配置后部分页面无法访问 检查SSL证书有效性,清除浏览器缓存
子域名仍可HTTP访问 确保includeSubDomains参数正确配置
浏览器提示HSTS错误 检查响应头大小写(应为Strict-Transport-Security

相关问题与解答

Q1:HSTS和HTTPS有什么区别?
A1:HTTPS是加密传输协议,解决数据明文传输问题;HSTS是安全策略协议,强制客户端使用HTTPS并拒绝HTTP请求,两者需配合使用,但属于不同层面的安全机制。

Q2:如何撤销已配置的HSTS?
A2:HSTS一旦生效无法立即撤销,需等待max-age时间过期,应急处理方法:

  1. 立即删除HSTS配置
  2. 更换主域名SSL证书(私钥+公钥)
  3. 联系CDN服务商刷新缓存
  4. 通过Google Search Console提交移除预加载申请(如
0