启用 HSTS

最近更新时间:2024-07-22 16:02:31

我的收藏

功能说明

HSTS(HTTP Strict-Transport-Security)是国际互联网工程组织 IETE 推行的 Web 安全协议,用来通知浏览器使用更安全的 HTTPS 访问该站点。若您需要增强网站的安全性,防止恶意攻击者通过中间人攻击窃取用户敏感信息;或需要遵循数据隐私保护法规,保护用户的隐私信息;或需要提高网站的信誉度,增强用户对网站的信任感,均可以配置 HSTS 来提高网站的安全性和信誉度。

当客户端使用 HTTP 协议向 EdgeOne 节点发起请求时,即使开启了强制 HTTPS 访问将请求重定向至 HTTPS,因为第一次请求时仍然使用 HTTP 请求,该过程可能被拦截或恶意篡改。

为了提升访问安全,可通过 HSTS 来强制浏览器直接发起 HTTPS 访问,HSTS 是高安全等级网站的重要安全机制,启用 HSTS 后,EdgeOne 在响应 HTTPS 请求时会增加一个响应头部 Strict-Transport-Security,通过该头部告诉浏览器在指定的时间内直接使用 HTTPS 协议发起请求。
注意:
1. HSTS 的Strict-Transport-Security 头部仅在 HTTPS 响应中生效,如果在 HTTP 响应中包含该头部,浏览器会忽略它。因此,开启 HSTS 时,建议配置 强制 HTTPS 访问,为域名配置 SSL 证书,确保用户首次访问时通过 HTTPS 请求进行。这样,EdgeOne 将通过 HTTPS 响应,从而确保 HSTS 配置生效。
2. 当配置了响应 HSTS 头部时,浏览器如果验证当前站点存在证书安全风险,将提示用户并拦截当前的用户访问行为,以进一步保护用户数据安全。

场景一:针对站点所有域名启用 HSTS

若您需要对整个接入站点启用 HSTS,可参考以下步骤:

前提条件

当前站点的访问域名,均已配置 SSL 证书。如何配置 SSL 证书请参考:证书配置

操作步骤

1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击站点列表,在站点列表内单击需配置的站点
2. 在站点详情页面,单击站点加速 ,进入站点全局配置页面,在右侧导航栏中,单击HTTPS
3. 找到 HSTS 配置卡片,单击开关,可开始配置 HSTS 。

4. 在弹出的配置窗中,可对 Strict-Transport-Security 头部内容进行配置。
配置状态:开启/关闭 HSTS 配置。
缓存时间:即 max-age 字段内容,可配置1-31536000整数。
包含子域名:开启后,将包含 includeSubDomains 指令。
预加载:开启后,将包含 preload 指令。

场景二:针对指定域名启用 HSTS

若您只需要针对指定域名开启 HSTS 或需要针对不同域名配置不同的 HSTS,可参考以下步骤。

前提条件

当前指定需要启用 HSTS 的域名,均已配置 SSL 证书。如何配置 SSL 证书请参考:证书配置

操作步骤

1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,单击站点列表,在站点列表内单击需配置的站点。
2. 在站点详情页面,单击站点加速,进入站点全局配置页面,单击规则引擎 Tab 页。
3. 在规则引擎页面,单击创建规则,选择新增空白规则
4. 在规则编辑页面,选择 Host 匹配类型以匹配指定域名的请求。
5. 单击操作 > 选择框,在弹出的操作列表内,选择操作为 HSTS配置,单击开关。

6. 单击保存并发布,即可完成该规则配置。

了解更多

Strict-Transport-Security 头部内包含的各字段含义说明如下:
字段
说明
max-age=<expire-time>
HSTS 头部的过期时间,单位为秒,在该时间内浏览器始终以 HTTPS 发起请求。
includeSubDomains(可选)
若包含此指令,则当前域名及其子域名均会启用 HSTS。
preload(可选)
该指令用于表示同意当前域名加入所有主流的 Web 浏览器的 HSTS 预加载列表。加入浏览器内置的 HSTS 列表后,浏览器在发起该域名请求时,均会使用 HTTPS 请求。若需要加入浏览器的内置 HSTS 列表,需要满足以下条件:
max-age 至少是31536000(一年)。
必须包含 includeSubDomains
必须包含 preload
您可以查看 HSTS preload list 来验证当前域名是否在浏览器预加载列表内,主流浏览器将定期在版本更新中将 HSTS preload list 通过硬编码的方式写入。