更新时间:2024-10-24 GMT+08:00

配置HSTS

HSTS(HTTP Strict Transport Security)即严格传输安全,是国际互联网工程组织IETF推行的Web安全协议。配置HSTS后,将强制客户端(如浏览器)使用HTTPS协议访问服务器,提升访问安全性。

工作原理

如果CDN配置了HSTS,客户端首次使用HTTPS协议访问CDN节点时,节点将给浏览器响应Strict-Transport-Security头部,如果浏览器支持HSTS协议,浏览器将缓存Strict-Transport-Security头部,在缓存过期之前,客户端(如浏览器)将请求自动转为HTTPS协议访问CDN节点。

注意事项

  • 如果您未配置HTTPS国际证书,HSTS配置将不会生效。
  • 当客户端首次访问采用HTTP协议时,您可以通过使用强制跳转功能,将客户端请求协议重定向为HTTPS。
  • 开启HSTS配置后,如果关闭HTTPS证书,请同时关闭HSTS配置。
  • 开启HSTS且浏览器缓存Strict-Transport-Security头部后,如果您将强制跳转类型配置为HTTP,将会进入无限循环,导致域名无法访问,如下图所示:

  • 后台有特殊配置的域名暂不支持自助开启HSTS,请提交工单处理。
  • 由于HSTS策略作用在客户端,关闭HSTS后无法立即生效,需要手动刷新浏览器缓存,如此,客户端下一次HTTP请求才不会自动转为HTTPS。

配置步骤

  1. 登录华为云控制台,在控制台首页中选择“ CDN与智能边缘 > 内容分发网络 CDN”,进入CDN控制台。
  2. 在左侧菜单栏中,选择域名管理
  3. 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
  4. 选择“HTTPS配置”页签。
  5. 在HSTS模块,单击“编辑”进入配置界面。
  6. 打开“状态”开关,配置参数。
    图1 HSTS
    表1 参数说明

    参数

    说明

    过期时间

    设置响应头“Strict-Transport-Security”在客户端的缓存时间。

    • 支持数字0~63072000,单位为秒。
    • “过期时间”配置太短会导致客户端缓存频繁过期,影响HSTS功能正常使用;如果“过期时间”配置太长,在缓存有效期内如果域名取消了HTTPS证书,会造成域名无法访问,从而影响业务正常运行。您可以根据业务情况合理配置“过期时间”,建议配置5184000秒,即60天。

    包含子域名

    子域名是否开启HSTS。

    • 不包含:子域名不开启HSTS。
    • 包含:子域名也开启HSTS,请确认是否所有子域名都已经配置HTTPS证书,否则选择“包含”会导致子域名无法访问。
  7. 单击“确定”完成配置。

配置示例

加速域名www.example.com的HSTS配置如下:

配置效果:

  1. 客户端首次使用HTTPS协议访问加速域名,CDN节点将请求内容返回给客户端,同时响应“Strict-Transport-Security”头部。
  2. 如果客户端不支持HSTS功能,再次请求到CDN节点的协议遵从客户端发起请求的协议。
  3. 如果客户端支持HSTS功能,客户端将缓存“Strict-Transport-Security”头部。再次访问加速域名时,浏览器会自动将HTTP请求强制转换为HTTPS请求到CDN。
  4. 浏览器缓存时间超过设置的“过期时间”后,将再次按照1执行。