
# 配置HSTS安全访问
HSTS（HTTP Strict Transport Security）即严格传输安全，是国际互联网工程组织IETF推行的Web安全协议。配置HSTS后，将强制客户端（如浏览器）使用HTTPS协议访问服务器，提升访问安全性。
#### 工作原理
如果CDN配置了HSTS，客户端首次使用HTTPS协议访问CDN节点时，节点将给浏览器响应Strict-Transport-Security头部，如果浏览器支持HSTS协议，浏览器将缓存Strict-Transport-Security头部，在缓存过期之前，客户端（如浏览器）将请求自动转为HTTPS协议访问CDN节点。HSTS响应头结构为：Strict-Transport-Security:max-age=expireTime \[;includeSubDomains\]，参数说明请参见下表。
| 参数                | 说明                                          |
|:---|:---|
| max-age           | HSTS Header的过期时间，单位为秒，客户端在此时间段内强制使用HTTPS访问。 |
| includeSubDomains | 可选参数。包含此参数时，说明该域名及其所有子域名均开启HSTS。            |
   
#### 注意事项
- 如果您未配置HTTPS国际证书，HSTS配置将不会生效。
- 当客户端首次访问采用HTTP协议时，您可以通过使用[强制跳转](https://support.huaweicloud.com/usermanual-cdn/cdn_01_0193.html)功能，将客户端请求协议重定向为HTTPS。
- 开启HSTS配置后，如果关闭HTTPS证书，请同时关闭HSTS配置。
- 开启HSTS且浏览器缓存Strict-Transport-Security头部后，如果您将强制跳转类型配置为HTTP，将会进入无限循环，导致域名无法访问，如下图所示： ![](https://support.huaweicloud.com/usermanual-cdn/zh-cn_image_0000001593607177.png "点击放大")
  
- 后台有特殊配置的域名暂不支持自助开启HSTS，请提交工单处理。
- 由于HSTS策略作用在客户端，关闭HSTS后无法立即生效，需要手动刷新浏览器缓存，如此，客户端下一次HTTP请求才不会自动转为HTTPS。
 
#### 配置步骤
1. 登录[CDN控制台](https://console.huaweicloud.com/cdn/?locale=zh-cn#/cdn/overview)。
2. 在左侧菜单栏中，选择"域名管理"。
3. 在域名列表中，单击需要修改的域名，进入"概览"页面。
4. 选择"HTTPS配置"页签。
5. 在HSTS模块，单击![](https://support.huaweicloud.com/usermanual-cdn/zh-cn_image_0000002527290146.png)按钮进入配置界面。
6. 打开"状态"开关，配置参数。
   图1HSTS   
   ![](https://support.huaweicloud.com/usermanual-cdn/zh-cn_image_0000002323921820.png "点击放大")
   表1参数说明 
   | 参数    | 说明                                                                                                                                                                                                                                                                                                                                                                                                 |
   |:---|:---|
   | 过期时间  | 设置响应头"Strict-Transport-Security"在客户端的缓存时间。 - 支持数字0\~63072000，单位为秒。  - "过期时间"配置太短会导致客户端缓存频繁过期，影响HSTS功能正常使用；如果"过期时间"配置太长，在缓存有效期内如果域名取消了HTTPS证书，会造成域名无法访问，从而影响业务正常运行。您可以根据业务情况合理配置"过期时间"，建议配置5184000秒，即60天。   |
   | 包含子域名 | 子域名是否开启HSTS。 - 不包含：子域名不开启HSTS。  - 包含：子域名也开启HSTS，请确认是否所有子域名都已经配置HTTPS证书，否则选择"包含"会导致子域名无法访问。                                                                                                             |
      
   
7. 单击"确定"完成配置。
 
#### 配置示例
加速域名www.example.com的HSTS配置如下：
![](https://support.huaweicloud.com/usermanual-cdn/zh-cn_image_0000001831232829.png "点击放大")
配置效果：
1. 客户端首次使用HTTPS协议访问加速域名，CDN节点将请求内容返回给客户端，同时响应"Strict-Transport-Security"头部。
2. 如果客户端不支持HSTS功能，再次请求到CDN节点的协议遵从客户端发起请求的协议。
3. 如果客户端支持HSTS功能，客户端将缓存"Strict-Transport-Security"头部。再次访问加速域名时，浏览器会自动将HTTP请求强制转换为HTTPS请求到CDN。
4. 浏览器缓存时间超过设置的"过期时间"后，将再次按照[1]执行。
 
#### 相关文档
调用接口修改HSTS请参考：[修改域名全量配置接口 - UpdateDomainFullConfig](https://support.huaweicloud.com/api-cdn/UpdateDomainFullConfig.html)。
