配置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。
配置步骤
- 登录华为云控制台,在控制台首页中选择“ CDN与智能边缘 > 内容分发网络 CDN”,进入CDN控制台。
- 在左侧菜单栏中,选择 。
- 在域名列表中,单击需要修改的域名或域名所在行的“设置”,进入域名配置页面。
- 选择“HTTPS配置”页签。
- 在HSTS模块,单击“编辑”进入配置界面。
- 打开“状态”开关,配置参数。
图1 HSTS
表1 参数说明 参数
说明
过期时间
设置响应头“Strict-Transport-Security”在客户端的缓存时间。
- 支持数字0~63072000,单位为秒。
- “过期时间”配置太短会导致客户端缓存频繁过期,影响HSTS功能正常使用;如果“过期时间”配置太长,在缓存有效期内如果域名取消了HTTPS证书,会造成域名无法访问,从而影响业务正常运行。您可以根据业务情况合理配置“过期时间”,建议配置5184000秒,即60天。
包含子域名
子域名是否开启HSTS。
- 不包含:子域名不开启HSTS。
- 包含:子域名也开启HSTS,请确认是否所有子域名都已经配置HTTPS证书,否则选择“包含”会导致子域名无法访问。
- 单击“确定”完成配置。
配置示例
加速域名www.example.com的HSTS配置如下:
配置效果:
- 客户端首次使用HTTPS协议访问加速域名,CDN节点将请求内容返回给客户端,同时响应“Strict-Transport-Security”头部。
- 如果客户端不支持HSTS功能,再次请求到CDN节点的协议遵从客户端发起请求的协议。
- 如果客户端支持HSTS功能,客户端将缓存“Strict-Transport-Security”头部。再次访问加速域名时,浏览器会自动将HTTP请求强制转换为HTTPS请求到CDN。
- 浏览器缓存时间超过设置的“过期时间”后,将再次按照1执行。