配置对 HTTP 严格传输安全性 (HSTS) 的支持
Citrix ADC 设备支持 HTTP 严格传输安全性 (HSTS) 作为 SSL 配置文件和 SSL 虚拟服务器中的内置选项。使用 HSTS,服务器可以在与客户端的所有通信中强制使用 HTTPS 连接。也就是说,只能使用 HTTPS 访问该站点。必须支持 HSTS 才能获得 SSL Labs 的 A+ 认证。
在 SSL 前端配置文件或 SSL 虚拟服务器上启用 HSTS。如果启用 SSL 配置文件,则必须在 SSL 配置文件上启用 HSTS,而不是在 SSL 虚拟服务器上启用。通过设置最长使用期限标头,可以指定 HSTS 在该持续时间内对该客户端有效。还可以指定是否必须包含子域。例如,通过将 IncludeSubdomains
参数设置为 YES,您可以指定只能使用 HTTPS 访问 www.example.com 的子域名,例如 www.abc.example.com 和 www.xyx.example.com。
如果访问任何支持 HSTS 的 Web 站点,来自服务器的响应标头将包含类似于以下内容的条目:
客户端在 max-age 参数中指定的时间内存储此信息。对于对该 Web 站点的后续请求,客户端会检查其内存中是否有 HSTS 条目。如果找到条目,则只能使用 HTTPS 访问该 Web 站点。
可以在创建 SSL 配置文件或 SSL 虚拟服务器时使用 add 命令配置 HSTS。还可以在现有 SSL 配置文件或 SSL 虚拟服务器上配置 HSTS,方法是使用 set 命令对其进行修改。
使用 CLI 配置 HSTS
在命令提示符下,键入:
add ssl vserver <vServerName> -maxage <positive_integer> -IncludeSubdomains ( YES | NO)
set ssl vserver <vServerName> -HSTS ( ENABLED | DISABLED )
<!--NeedCopy-->
或
add ssl profile <name> -maxage <positive_integer> -IncludeSubdomains ( YES | NO )
set ssl profile <name> -HSTS ( ENABLED | DISABLED )
Arguments
HSTS
State of HTTP Strict Transport Security (HSTS) on an SSL virtual server or SSL profile. Using HSTS, a server can enforce the use of an HTTPS connection for all communication with a client.
Possible values: ENABLED, DISABLED
Default: DISABLED
maxage
Set the maximum time, in seconds, in the strict transport security (STS) header during which the client must send only HTTPS requests to the server.
Default: 0
Minimum: 0
Maximum: 4294967294
IncludeSubdomains
Enable HSTS for subdomains. If set to Yes, a client must send only HTTPS requests for subdomains.
Possible values: YES, NO
Default: NO
<!--NeedCopy-->
在以下示例中,客户端只能使用 HTTPS 访问 Web 站点及其子域名 157680000 秒。
add ssl vserver VS-SSL –maxage 157680000 –IncludeSubdomain YES
set ssl vserver VS-SSL –HSTS ENABLED
<!--NeedCopy-->
add sslProfile hstsprofile –HSTS ENABLED –maxage 157680000 –IncludeSubdomain YES
set sslProfile hstsprofile –HSTS ENABLED
<!--NeedCopy-->
使用 GUI 配置 HSTS
- 导航到流量管理 > 负载平衡 > 虚拟服务器,选择 SSL 类型的虚拟服务器,然后单击编辑。
如果设备上启用了默认 SSL 配置文件,请执行以下步骤。
-
选择一个 SSL 配置文件,然后单击编辑。
-
在基本设置中,单击铅笔图标以编辑设置。向下滚动并选择 HSTS 和包括子域。
如果设备上未启用默认 SSL 配置文件,请执行以下步骤。
-
在 高级设置中,选择 SSL 参数。
-
选择 HSTS 和包括子域。
支持 HSTS 预加载
Citrix ADC 设备支持在 HTTP 响应标头中添加 HSTS 预加载。要包含预加载,必须将 SSL 虚拟服务器或 SSL 配置文件中的 preload
参数设置为 YES。然后,设备将预加载包含在客户端的 HTTP 响应标头中。可以使用 CLI 和 GUI 配置此功能。有关 HSTS 预加载的详细信息,请参阅 https://hstspreload.org/。
下面是带有预加载的有效 HSTS 标头的示例:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
<!--NeedCopy-->
Strict-Transport-Security: max-age=63072000; preload
<!--NeedCopy-->
使用 CLI 配置 HSTS 预加载
在命令提示符下,键入:
add ssl vserver <vServerName> -maxage <positive_integer> -preload ( YES | NO )
set ssl vserver <vServerName> -HSTS ( ENABLED | DISABLED )
<!--NeedCopy-->
或
add ssl profile <name> -maxage <positive_integer> -IncludeSubdomains ( YES | NO ) -preload ( YES | NO )
set ssl profile <name> -HSTS ( ENABLED | DISABLED )
<!--NeedCopy-->
使用 GUI 配置 HSTS 预加载
如果设备上启用了默认 SSL 配置文件,请执行以下步骤。
-
导航到 系统 > 配置文件 > SSL 配置文件。选择一个 SSL 配置文件,然后单击编辑。
-
在基本设置中,单击铅笔图标以编辑设置。向下滚动并选择 HSTS 和预加载。
如果设备上未启用默认 SSL 配置文件,请执行以下步骤。
-
导航到流量管理 > 负载平衡 > 虚拟服务器,选择 SSL 类型的虚拟服务器,然后单击编辑。
-
在 高级设置中,选择 SSL 参数。
-
选择 HSTS 和预加载。