ADC

SSL 配置文件基础结构

SSLv3 和 RC4 实施中的漏洞强调需要使用最新的密码和协议来协商网络连接的安全设置。对配置实施任何更改(例如在数千个 SSL 端点禁用 SSLv3)是一个繁琐的过程。因此,作为 SSL 端点配置一部分的设置已被移动到 SSL 配置文件以及默认密码。要在配置中实现更改(包括密码支持),您只需修改绑定到实体的配置文件。

默认的前端和默认后端 SSL 配置文件包含所有默认密码和 ECC 曲线,以及作为旧配置文件一部分的设置。附录中提供了默认配置文件的示例输出。“启用默认配置文件”操作会自动将默认前端配置文件绑定到所有前端实体,并将默认后端配置文件绑定到所有后端实体。您可以修改默认配置文件以适应您的部署。您还可以创建自定义配置文件并将其绑定到 SSL 实体。

前端配置文件包含适用于前端实体的参数。也就是说,它们适用于接收来自客户端的请求的实体。通常,此实体是 Citrix ADC 设备上的 SSL 虚拟服务器或透明 SSL 服务。后端配置文件包含适用于后端实体的参数。也就是说,它们适用于 ADC 设备上向后端服务器发送客户端请求的实体。通常,此实体是 Citrix ADC 设备上的 SSL 服务。如果您尝试配置不受支持的参数,则会出现 ERROR: Specified parameters are not applicable for this type of SSL profile 错误。

重要:

  • SSL 配置文件优先于 SSL 参数。也就是说,如果您使用 set ssl parameter 命令配置 SSL 参数,然后将配置文件绑定到 SSL 实体,则配置文件中的设置优先。

  • 升级后,如果启用默认配置文件,则无法撤消更改。也就是说,无法禁用配置文件。在启用配置文件之前,保存配置并创建配置文件 (ns.conf) 的副本。但是,如果您不想使用默认配置文件中的功能,则可以继续使用旧的 SSL 配置文件。有关这些配置文件的更多信息,请参阅 旧版 SSL 配置文件

  • 从版本 11.1 51.x 开始,在 GUI 和 CLI 中,启用默认配置文件以防止错误启用它时,会添加确认提示。

命令:

set ssl parameter -defaultProfile ENABLED
    Save your configuration before enabling the Default profile. You cannot undo the changes. Are you sure you want to enable the Default profile? [Y/N]Y
Done
<!--NeedCopy-->

默认情况下,某些 SSL 参数(称为 全局参数)应用于所有 SSL 端点。但是,如果配置文件绑定到 SSL 端点,则全局参数不适用。配置文件中指定的设置改为适用。

注意事项

  1. 一个配置文件可以绑定到多个虚拟服务器,但一个虚拟服务器只能绑定一个配置文件。
  2. 若要删除绑定到虚拟服务器的配置文件,请先取消绑定该配置文件。
  3. 密码或密码组可以以不同的优先级绑定到多个配置文件。
  4. 一个配置文件可以有多个密码和密码组绑定在不同的优先级。
  5. 对密码组的更改将立即反映在所有配置文件以及其中一个配置文件绑定到的所有虚拟服务器中。
  6. 如果密码套件是密码组的一部分,请在从配置文件中删除密码套件之前编辑密码组以删除该密码套件。
  7. 如果您没有为附加到配置文件的密码套件或密码组分配优先级,则会为其分配配置文件中的最低优先级。
  8. 您可以从现有密码组和密码套件创建自定义密码组(也称为用户定义的密码组)。如果您创建密码组 A 并向其添加现有密码组 X 和 Y,则按照该顺序,Y 的优先级将低于 X。也就是说,首先添加的组具有更高的优先级。
  9. 如果密码套件是附加到同一个配置文件的两个密码组的一部分,则该密码套件不会添加为第二个密码组的一部分。处理流量时,优先级较高的密码套件将生效。
  10. 密码组不会在配置文件中展开。因此,配置文件 (ns.conf) 中的行数大大减少。例如,如果两个包含 15 个密码的密码组绑定到一千个 SSL 虚拟服务器,扩展将在配置文件中添加 30*1000 个密码相关的条目。对于新配置文件,它将只有两个条目:绑定到配置文件的每个密码组一个条目。
  11. 从现有密码和密码组创建用户定义的密码组是一种复制粘贴操作。原始组中的任何更改都不会反映在新组中。
  12. 用户定义的密码组列出了它所属的所有配置文件。
  13. 配置文件列出了绑定到的所有 SSL 虚拟服务器、服务和服务组。
  14. 如果启用了默认 SSL 配置文件功能,请使用配置文件设置或更改 SSL 实体的任何属性。例如,虚拟服务器、服务组或内部服务。

使用 CLI 保存配置

在命令提示符下,键入:

save config

shell

root@ns# cd /nsconfig

root@ns# cp ns.conf ns.conf.NS<currentreleasenumber><currentbuildnumber>
<!--NeedCopy-->

示例:

save config
shell
root@ns# cd /nsconfig
root@ns# cp ns.conf ns.conf.NS.11.0.jun.16
<!--NeedCopy-->

启用默认配置文件

重要:

在升级软件之前保存配置并启用默认配置文件。

从版本 11.1 Build 51.x 中的 GUI 和 CLI 中,当您启用默认配置文件时,将显示确认提示,以避免错误启用它。

命令: 以下命令启用默认配置文件,并将此配置文件绑定到配置文件已绑定到的 SSL 实体。也就是说,如果配置文件(例如 P1)已绑定到 SSL 实体,则默认前端配置文件或默认后端配置文件将替换 P1。不会删除旧的配置文件 (P1)。它现在是一个增强型 SSL 配置文件,并包含较早的设置,以及密码和 ECC 曲线。如果您不需要默认配置文件,则可以显式地将 P1 绑定到 SSL 实体。

set ssl parameter -defaultProfile ENABLED
    Save your configuration before enabling the Default profile. You cannot undo the changes. Are you sure you want to enable the Default profile? [Y/N]Y
Done
<!--NeedCopy-->

将软件升级到支持增强型配置文件基础结构的内部版本,然后启用默认配置文件。

备注:

  • 如果早期配置文件 (P1) 已绑定到 SSL 实体,并且您启用了默认配置文件,则默认配置文件将覆盖早期的绑定。也就是说,默认配置文件绑定到 SSL 实体。如果您不希望绑定默认配置文件,则必须再次将 P1 绑定到 SSL 实体。

  • 单个操作(启用默认配置文件或set ssl parameter -defaultProfile ENABLED)启用(绑定)默认前端配置文件和默认后端配置文件。

用例

启用默认配置文件后,它们将绑定到所有 SSL 端点。默认配置文件是可编辑的。如果您的部署使用了大多数默认设置并且仅更改了少数参数,则可以编辑默认配置文件。这些更改会立即反映在所有终点上。您还可以使用一些自定义参数和一些默认参数创建自定义 SSL 配置文件,并将其绑定到 SSL 实体。

下面的流程图说明了您必须执行的步骤:

SSL 配置文件用例 1

  1. 有关升级软件的信息,请参阅 升级系统软件

  2. 使用 CLI 或 GUI 启用默认配置文件。

  • 在命令行中,键入:set ssl parameter -defaultProfile ENABLED
  • 如果您希望使用 GUI,请导航至 流量管理 > SSL > 更改高级 SSL设置 ,向下滚动,然后选择 启用默认配置文件

如果在升级之前配置文件未绑定到终点,则默认配置文件将绑定到 SSL 终点。如果某个配置文件在升级之前绑定到终点,则该配置文件将在升级之后绑定,并将默认密码添加到配置文件中。

  1. (可选)手动更改默认配置文件中的任何设置。
  • 在命令行中,键入:set ssl profile <name> 后跟要修改的参数。
  • 如果您希望使用 GUI,请导航到“系统”>“配置文件”。在 SSL 配置文件中,选择一个配置文件,然后单击 编辑

SSL 配置文件参数

您可以在 SSL 配置文件中设置以下 SSL 参数。您可以在 SSL 虚拟服务器中设置其中一些参数。有关 SSL 虚拟服务器参数的更多信息,请参阅 SSL 虚拟服务器参数

支持 Citrix ADC 设备后端的安全重新协商

注意: 此参数在版本 13.0 Build 58.x 及更高版本中引入。在早期版本和内部版本中,后端只支持非安全的重新协商。

以下平台支持该功能:

  • VPX
  • 包含 N2 或 N3 芯片的 MPX 平台
  • 基于 Intel Coleto SSL 芯片的平台

FIPS 平台尚不支持该功能。

默认情况下,ADC 设备的后端拒绝安全重新协商。也就是说,denySSLReneg 参数设置为“全部”(默认值)。

要允许在后端进行安全重新协商,请从以下 denySSLReneg 参数设置之一中进行选择:

  • FRONTEND_CLIENT
  • FRONTEND_CLIENTSERVER
  • NONSECURE

使用 CLI 启用安全重新协商

在命令提示符下,键入:

set ssl profile <name> -denySSLReneg <denySSLReneg>

示例:

set ssl profile ns_default_ssl_profile_backend -denySSLReneg NONSECURE
 Done

sh ssl profile ns_default_ssl_profile_backend
1)  Name: ns_default_ssl_profile_backend    (Back-End)
    SSLv3: DISABLED TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
    Server Auth: DISABLED
    Use only bound CA certificates: DISABLED
    Strict CA checks:       NO
    Session Reuse: ENABLED      Timeout: 300 seconds
    DH: DISABLED
    Ephemeral RSA: DISABLED
    Deny SSL Renegotiation      NONSECURE
    Non FIPS Ciphers: DISABLED
    Cipher Redirect: DISABLED
    SSL Redirect: DISABLED
    Send Close-Notify: YES
    Strict Sig-Digest Check: DISABLED
    Push Encryption Trigger: Always
    PUSH encryption trigger timeout:    1 ms
    SNI: DISABLED
    OCSP Stapling: DISABLED
    Strict Host Header check for SNI enabled SSL sessions:      NO
    Push flag:  0x0 (Auto)
    SSL quantum size:       8 kB
    Encryption trigger timeout  100 mS
    Encryption trigger packet count:    45

    ECC Curve: P_256, P_384, P_224, P_521

1)  Cipher Name: DEFAULT_BACKEND        Priority :2
    Description: Predefined Cipher Alias

1)  Service Name: s187
 Done
<!--NeedCopy-->

使用 GUI 启用安全重新协商

  1. 导航到 系统 > 配置文件 > SSL 配置文件。
  2. 添加或编辑个人资料。
  3. 将“拒绝 SSL 重新协商”设置为“全部”以外的任何值。

    后端安全重新协商 SSL 配置文件

主机头验证

注意: 此参数是在版本 13.0 版本 52.x 中引入的。

使用 HTTP/1.1,客户端必须使用多个连接来处理多个请求。借助 HTTP/2,客户端可以跨同一证书覆盖的域重复使用连接。对于启用 SNI 的会话,ADC 设备必须能够控制如何验证 HTTP 主机标头以适应此更改。在早期版本中,如果参数已启用(设置为 “是”)且请求不包含启用了 SNI 的会话的主机标头,则请求将被删除。如果该参数被禁用(设置为“否”),则设备将不执行验证。将向 SSL 配置文件和 SSL 全局参数添加一个新参数 SNIHTTPHostMatch,以便更好地控制此验证。此参数可以采用三个值:CERT、STRICT 和 NONE。这些值仅适用于启用 SNI 的会话,如下所示。必须在 SSL 虚拟服务器或绑定到虚拟服务器的配置文件上启用 SNI,并且 HTTP 请求必须包含主机标头。

  • CERT- 如果请求中的主机头值包含在用于建立此 SSL 会话的证书中,则会转发连接。
  • 严格-仅当请求中的主机标头值与 SSL 连接的 Client Hello 消息中传递的服务器名称值匹配时,才会转发连接。
  • 否-未验证主机头值。

可能的值:NO、CERT、STRICT 默认值:CERT

随着新参数 SNIHTTPHostMatch 的引入,dropReqWithNoHostHeader 参数的行为发生了变化。dropReqWithNoHostHeader 参数的设置不再影响根据 SNI 证书验证主机标头的方式。

使用 CLI 设置设置 SSL 配置文件参数

在命令提示符下,键入:

set ssl profile <name> [-ssllogProfile <string>] [-dh ( ENABLED | DISABLED ) -dhFile <string>] [-dhCount <positive_integer>][-dhKeyExpSizeLimit ( ENABLED | DISABLED )] [-eRSA ( ENABLED | DISABLED) [-eRSACount <positive_integer>]] [-sessReuse ( ENABLED | DISABLED )
[-sessTimeout <positive_integer>]] [-cipherRedirect ( ENABLED | DISABLED ) [-cipherURL <URL>]] [-clientAuth ( ENABLED | DISABLED )[-clientCert ( Mandatory | Optional )]] [-sslRedirect ( ENABLED |
DISABLED )] [-redirectPortRewrite ( ENABLED | DISABLED )] [-ssl3 (ENABLED | DISABLED )] [-tls1 ( ENABLED | DISABLED )] [-tls11 ( ENABLED| DISABLED )] [-tls12 ( ENABLED | DISABLED )] [-tls13 ( ENABLED |DISABLED )] [-SNIEnable ( ENABLED | DISABLED )] [-ocspStapling (ENABLED | DISABLED )] [-serverAuth ( ENABLED | DISABLED )] [-commonName <string>] [-pushEncTrigger <pushEncTrigger>] [-sendCloseNotify ( YES |
NO )] [-clearTextPort <port|*>] [-insertionEncoding ( Unicode | UTF-8)] [-denySSLReneg <denySSLReneg>] [-quantumSize <quantumSize>]
[-strictCAChecks ( YES | NO )] [-encryptTriggerPktCount <positive_integer>] [-pushFlag <positive_integer>][-dropReqWithNoHostHeader ( YES | NO )] [-SNIHTTPHostMatch <SNIHTTPHostMatch>] [-pushEncTriggerTimeout <positive_integer>]
[-sslTriggerTimeout <positive_integer>] [-clientAuthUseBoundCAChain (ENABLED | DISABLED )] [-sslInterception ( ENABLED | DISABLED )][-ssliReneg ( ENABLED | DISABLED )] [-ssliOCSPCheck ( ENABLED | DISABLED )] [-ssliMaxSessPerServer <positive_integer>] [-HSTS ( ENABLED| DISABLED )] [-maxage <positive_integer>] [-IncludeSubdomains ( YES | NO )] [-preload ( YES | NO )] [-sessionTicket ( ENABLED | DISABLED )][-sessionTicketLifeTime <positive_integer>] [-sessionTicketKeyRefresh (ENABLED | DISABLED )] {-sessionTicketKeyData } [-sessionKeyLifeTime <positive_integer>] [-prevSessionKeyLifeTime <positive_integer>]
[-cipherName <string> -cipherPriority <positive_integer>][-strictSigDigestCheck ( ENABLED | DISABLED )]
[-skipClientCertPolicyCheck ( ENABLED | DISABLED )] [-zeroRttEarlyData ( ENABLED | DISABLED )] [-tls13SessionTicketsPerAuthContext
<positive_integer>] [-dheKeyExchangeWithPsk ( YES | NO )]
<!--NeedCopy-->

使用 GUI 设置 SSL 配置文件参数

要添加配置文件:

  1. 导航到系统 > 配置文件系统简介
  2. 选择 SSL 配置文件。单击添加SSL 配置文件
  3. 为不同的参数指定值。 SSL 配置文件参数
  4. 单击 OK(确定)。
  5. 单击完成

要重复使用现有的 SSL 配置文件:

  1. 导航到系统 > 配置文件
  2. 选择现有配置文件,然后单击 添加
  3. 指定其他名称,更改所有参数,然 后单击 “确定”
  4. 单击完成

TLS 会话票证扩展

SSL 握手是 CPU 密集型操作。如果启用了会话重用,则会跳过现有客户端的服务器/客户端密钥交换操作。允许他们继续开会。此操作可以缩短响应时间,并增加服务器可以支持的每秒 SSL 事务数。但是,服务器必须存储每个会话状态的详细信息,这会消耗内存,并且如果请求在服务器之间进行负载均衡,则很难在多个服务器之间共享。

Citrix ADC 设备支持 SessionTicket TLS 扩展。使用此扩展表明会话详细信息存储在客户端而不是服务器上。客户端必须通过在客户端 Hello 消息中包含会话票证 TLS 扩展来表明它支持此机制。对于新客户端,此扩展名为空。服务器在 NewSessionTicket 握手消息中发送一个新的会话票证。会话票证是通过使用仅服务器知道的密钥对加密的。如果服务器现在无法发出新票证,它将完成常规握手。

此功能仅在前端 SSL 配置文件中可用,并且仅在设备充当服务器并生成会话票证的通信前端可用。

限制

  • FIPS 平台不支持此功能。
  • 此功能仅支持 TLS 版本 1.1 和 1.2 版本。
  • 会话票证不支持 SSL 会话 ID 持久性。

使用 CLI 启用 TLS 会话票证扩展

在命令提示符下,键入:

set ssl profile <name> -sessionTicket (ENABLED | DISABLED ) [-sessionTicketLifeTime <positive_integer>
<!--NeedCopy-->

参数:

sessionTicket: TLS 会话票证扩展状态。使用此扩展表明会话详细信息存储在客户端而不是服务器上,如 RFC 5077 中所定义。

可能的值:ENABLED、DISABLED

默认值: 禁用

sessionTicketLifeTime:指定一个时间(以秒为单位),在此时间之后,会话工单过期并必须启动新的 SSL 握手。

默认值:300

最小值:0

最大值:172800

示例:

add ssl profile profile1 -sessionTicket ENABLED -sessionTicketlifeTime 300
Done
<!--NeedCopy-->

通过使用 GUI 启用 TLS 会话票证扩展

  1. 导航到 系统 > 配置文件。选择 SSL 配置文件
  2. 单击“添加”并为配置文件指定名称。
  3. 选择 会话工单
  4. 或者,指定 会话票证生命周期 (秒)

会话票证的安全实施

通过使用 TLS 会话票证,客户端可以使用缩写的握手来更快地重新连接到服务器。但是,如果会话票证长时间未加密或更改,它们可能会带来安全风险。您可以通过使用对称密钥对会话票证进行加密来保护它们。要实现向前保密,您可以指定刷新会话工单密钥的时间间隔。

默认情况下,设备会生成会话票证密钥。但是,如果部署中的多台设备需要解密彼此的会话票证,则它们必须使用相同的会话票证密钥。因此,必须在所有设备上手动设置(添加或加载)相同的会话票证密钥数据。会话工单密钥数据包括以下信息:

  • 会话票据名称。
  • 用于加密或解密 TT 的会话 AES 密钥。
  • 用于计算工单摘要的会话 HMAC 密钥。

您现在可以根据 RFC 5077 中的建议配置长度为 64 字节的会话票证密钥数据以支持 256 位 HMAC 密钥。还支持 48 字节的密钥长度以实现向后兼容。

注意 : 手动键入会话票证密钥数据时,请确保 HA 设置或群集设置中所有 Citrix ADC 设备的配置相同。

sessionTicketKeyLifeTime`` 参数指定刷新会话票证密钥的频率。您可以设置prevSessionTicketKeyLifeTime 参数以指定在生成新密钥后使用该密钥解密工单时使用先前的会话工单密钥维护多长时间。该prevSessionTicketKeyLifeTime 设置延长了客户端可以使用缩写握手重新连接的时间。例如,如果设置sessionTicketKeyLifeTime 为 10 分钟,设置prevSessionTicketKeyLifeTime 为 5 分钟,则会在 10 分钟后生成一个新密钥,并将其用于所有新会话。但是,以前连接的客户端还有 5 分钟的时间,以前签发的票据可以用于缩写握手。

使用 CLI 配置 SSL 会话票证数据

在命令提示符下,键入:

set ssl profile <name> -sessionTicket ENABLED -sessionTicketLifeTime <positive_integer> -sessionTicketKeyRefresh ( ENABLED | DISABLED )] -sessionTicketKeyLifeTime <positive_integer> [-prevSessionTicketKeyLifeTime <positive_integer>]
<!--NeedCopy-->

参数:

sessionTicket:使用 RFC 5077 所述的会话票证。建立初始握手需要 CPU 密集型公钥加密操作。使用“ENABLED 用”设置,服务器会向客户端发出会话票证,客户端可以使用该票证执行缩写握手。

可能的值:已启用,已禁用。默认值:DISABLED

sessionTicketLifeTime:会话票据的生命周期(以秒为单位)。在此时间过期后,客户端无法使用此 TT 恢复其会话。

最大值:172800。最小值:0。默认值:300。

sessionTicketKeyRefresh:当会话票证密钥生命周期参数指定的时间过期时,重新生成用于加密或解密会话票证的会话票证密钥。如果启用了 sessionTicket,则自动启用。如果管理员输入会话票证数据,则禁用。

可能的值:已启用,已禁用。默认值:ENABLED

sessionKeyLifeTime:用于加密 Citrix ADC 设备发出的会话票证的对称密钥的生命周期(以秒为单位)。

最大值:86400。最低值:600。默认值:3000

prevSessionKeyLifeTime:在会话票证密钥生命周期过期后,用于加密会话票证的上一个对称密钥对现有客户端仍然有效的时间(以秒为单位)。在此时间内,现有客户端可以使用之前的会话工单密钥恢复其会话。使用新密钥对新客户端的会话票证进行加密。

最大值:172800。最小值:0。默认值:0

示例:

set ssl profile ns_default_ssl_profile_frontend -sessionTicket ENABLED -sessionTicketlifeTime 120 -sessionTicketKeyRefresh ENABLED -sessionTicketKeyLifeTime 100 -prevSessionTicketKeyLifeTime 60

Done

show ssl profile ns_default_ssl_profile_frontend

    Session Ticket: ENABLED
    Session Ticket Lifetime: 120 (secs)
    Session Key Auto Refresh: ENABLED
    Session Key Lifetime: 100 (secs)
    Previous Session Key Lifetime: 60 (secs)
<!--NeedCopy-->

使用 GUI 配置 SSL 会话票证数据

  1. 导航到 系统 > 配置文件,然后选择 SSL 配置文件。

  2. 选择 ns_default_ssl_profile_frontend 并单击 编辑

  3. 在“基本设置”部分,单击铅笔图标并设置以下参数:

    • 会话票据
    • 会话票据生命周期(秒)
    • 会话票证密钥自动刷新
    • 会话票证密钥生命周期(秒)
    • 上次会话票证密钥生命周期 (秒)
  4. 单击 OK(确定)。

使用 CLI 手动键入 SSL 会话票证数据

在命令提示符下,键入:

set ssl profile <name> -sessionTicket ENABLED

set ssl profile <name> -sessionTicketKeyData

show ssl profile ns_default_ssl_profile_frontend
<!--NeedCopy-->

参数:

sessionTicket:使用 RFC 5077 所述的会话票证。建立初始握手需要 CPU 密集型公钥加密操作。使用“ENABLED 用”设置,服务器会向客户端发出会话票证,客户端可以使用该票证执行缩写握手。

可能的值:已启用,已禁用。默认值:DISABLED

SessionticketKeyDataContains the session ticket name (0–15 bytes), the session AES key used to encrypt or decrypt the session ticket (16–31 bytes), and the session HMAC key used to compute the digest of the ticket (32–63 bytes). Externally generated by an administrator and added to a Citrix ADC appliance.

最大长度:64 字节

示例:

set ssl profile ns_default_ssl_profile_frontend -sessionTicket ENABLED

Done

set ssl profile ns_default_ssl_profile_frontend -sessionTicketKeyData 111111111111111111111111111111111111111111111111

Done

show ssl profile ns_default_ssl_profile_frontend

    1) Name: ns_default_ssl_profile_frontend (Front-End)
    SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED
    Client Auth: DISABLED
    Use only bound CA certificates: DISABLED
    Strict CA checks: NO
    Session Reuse: ENABLED Timeout: 120 seconds
    DH: DISABLED
    DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
    Deny SSL Renegotiation ALL
    Non FIPS Ciphers: DISABLED
    Cipher Redirect: DISABLED
    SSL Redirect: DISABLED
    Send Close-Notify: YES
    Push Encryption Trigger: Always
    PUSH encryption trigger timeout: 1 ms
    SNI: DISABLED
    OCSP Stapling: DISABLED
    Strict Host Header check for SNI enabled SSL sessions: NO
    Push flag: 0x0 (Auto)
    SSL quantum size: 8 kB
    Encryption trigger timeout 100 mS
    Encryption trigger packet count: 45
    Subject/Issuer Name Insertion Format: Unicode
    Session Ticket: ENABLED
    Session Ticket Lifetime: 300 (secs)
    Session Key Auto Refresh: DISABLED
    Session Key Lifetime: 3000 (secs)
    Previous Session Key Lifetime: 0 (secs)
    Session Key Data: 84dad1afc6d56b0deeb0a7fd7f299a207e8d8c15cdd087a5684a11a329fd732e87a0535d90883
    47e8c181ba266f5c8838ae472cb3ab9255b683bf922fad32cee816c329989ef7cdeb278e93ac37882e3

    ECC Curve: P_256, P_384, P_224, P_521

    1) Cipher Name: DEFAULT Priority :4
    Description: Predefined Cipher Alias

    1) Internal Service Name (Front-End): nsrnatsip-127.0.0.1-5061
    2) Internal Service Name (Front-End): nskrpcs-127.0.0.1-3009
    3) Internal Service Name (Front-End): nshttps-::1l-443
    4) Internal Service Name (Front-End): nsrpcs-::1l-3008
    5) Internal Service Name (Front-End): nshttps-127.0.0.1-443
    6) Internal Service Name (Front-End): nsrpcs-127.0.0.1-3008
    7) Vserver Name: v1

Done
<!--NeedCopy-->

使用 GUI 手动键入 SSL 会话票证数据

  1. 导航到系统 > 配置文件,然后选择 SSL 配置文件

  2. 选择 ns_default_ssl_profile_frontend 并单击 编辑

  3. 在“基本设置”部分,单击铅笔图标并设置以下参数:

    • 会话票据
    • 会话票据关键数据
    • 确认会话票据关键数据
  4. 单击 OK(确定)。

在 Citrix ADC 非 FIP 平台上支持 SSL 握手中的扩展主机密

注意: 此参数是在版本 13.0 Build 61.x 中引入的。

扩展主密钥 (EMS) 是传输层安全性 (TLS) 协议的可选扩展。添加了一个新参数,该参数同时适用于前端和后端 SSL 配置文件,以支持 Citrix ADC 设备上的 EMS。如果启用了参数并且对等方支持 EMS,则 ADC 设备将使用 EMS 计算。如果对等方不支持 EMS,则即使在设备上启用了参数,也不会将 EMS 计算用于连接。有关 EMS 的更多信息,请参阅 RFC 7627。

注意: EMS 仅适用于使用 TLS 协议版本 1.0、1.1 或 1.2 的握手。

EMS 的平台支持

  • MPX 和 SDX 平台包含 Cavium N3 芯片或 Intel Coleto Creek 加密卡。以下平台随 Intel Coleto 芯片一起提供:
  • MPX 5900
  • MPX/SDX 8900
  • MPX/SDX 26000
  • MPX/SDX 26000-50S
  • MPS/SDX 26000-100G
  • MPX/SDX 15000-50G

您还可以使用“显示硬件”命令来识别您的设备是否具有 Cole (COL) 或 N3 芯片。

  • 没有加密卡的 MPX 和 SDX 平台(仅限软件)。

  • 仅软件平台:VPX、CPX 和 BLX。

无法在以下平台上启用 EMS:

  • MPX 9700 FIPS 和 MPX 14000 FIPS 平台。

  • MPX 和 SDX 平台包含 Cavium N2 加密芯片。

如果启用该参数,ADC 设备将尝试在 TLS 1.2、TLS 1.1 和 TLS 1.0 连接中使用 EMS。该设置不影响 TLS 1.3 或 SSLv3 连接。

要允许 EMS 与对等项协商,请启用绑定到虚拟服务器(前端)或服务(后端)的 SSL 配置文件上的设置。

使用 CLI 启用 EMS

在命令提示符下,键入:

set ssl profile <profile name> [-allowExtendedMasterSecret (YES | NO)]

示例

set ssl profile ns_default_ssl_profile_frontend  -allowExtendedMasterSecret YES

set ssl profile ns_default_ssl_profile_backend  -allowExtendedMasterSecret YES
<!--NeedCopy-->

下表显示了不同默认配置文件和用户定义配置文件上 allowExtendedMasterSecret 参数的默认值。

配置文件 默认设置
默认前端配置文件
默认的前端安全配置文件
默认后端配置文件
用户定义的

使用 GUI 启用 EMS

  1. 导航到 系统 > 配置文件 > SSL 配置文件。
  2. 添加个人资料或编辑个人资料。
  3. 将“允许扩展主密钥”设置为“YES”。

    EMS

支持在客户问好消息中处理 ALPN 分机

注意:版本 13.0 Build 61.x 及更高版本支持此功能。

将在前端 SSL 配置文件中添加一个参数 alpnProtocol ,用于协商由 SSL_TCP 虚拟服务器处理的连接的 ALPN 扩展中的应用程序协议。如果客户端 hello 消息的 ALPN 扩展中收到相同的协议,则仅协商 SSL 配置文件中指定的协议。

注意: alpnProtocol 参数仅在前端 SSL 配置文件上受支持,并且适用于 SSL_TCP 类型虚拟服务器处理的 SSL 连接。

使用 CLI 在前端 SSL 配置文件中设置协议

在命令提示符下,键入:

set ssl profile ns_default_ssl_profile_frontend -alpnProtocol <protocol_name>

alpnProtocol 参数可以采用三个值。最大长度:4096 个字节。

  • NONE: 不进行应用程序协议协商。这是默认设置。
  • HTTP1: HTTP1 可以协商为应用程序协议。
  • HTTP2: HTTP2 可以协商为应用程序协议。

示例:

set ssl profile ns_default_ssl_profile_frontend -ALPNProtocol HTTP2
> sh ssl profile ns_default_ssl_profile_frontend
1)  Name: ns_default_ssl_profile_frontend   (Front-End)
    SSLv3: DISABLED TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
    Client Auth: DISABLED
    Use only bound CA certificates: DISABLED
    Strict CA checks:   NO
    Session Reuse: ENABLED  Timeout: 120 seconds
    DH: DISABLED
    DH Private-Key Exponent Size Limit: DISABLED    Ephemeral RSA: ENABLED  Refresh Count: 0
    Deny SSL Renegotiation  ALL
    Non FIPS Ciphers: DISABLED
    Cipher Redirect: DISABLED
    SSL Redirect: DISABLED
    Send Close-Notify: YES
    Strict Sig-Digest Check: DISABLED
    Zero RTT Early Data: DISABLED
    DHE Key Exchange With PSK: NO
    Tickets Per Authentication Context: 1
    Push Encryption Trigger: Always
    PUSH encryption trigger timeout:    1 ms
    SNI: DISABLED
    OCSP Stapling: DISABLED
    Strict Host Header check for SNI enabled SSL sessions:  NO
    Match HTTP Host header with SNI:    CERT
    Push flag:  0x0 (Auto)
    SSL quantum size:   8 kB
    Encryption trigger timeout  100 mS
    Encryption trigger packet count:    45
    Subject/Issuer Name Insertion Format:   Unicode

    SSL Interception: DISABLED
    SSL Interception OCSP Check: ENABLED
    SSL Interception End to End Renegotiation: ENABLED
    SSL Interception Maximum Reuse Sessions per Server: 10
    Session Ticket: DISABLED
    HSTS: DISABLED
    HSTS IncludeSubDomains: NO
    HSTS Max-Age: 0
    HSTS Preload: NO
    Allow Extended Master Secret: NO
    Send ALPN Protocol: HTTP2

 Done
 <!--NeedCopy-->

使用 GUI 在前端 SSL 配置文件中设置协议

  1. 导航到系统 > 配置文件,然后选择 SSL 配置文件

  2. 选择 ns_default_ssl_profile_frontend 并单击 编辑

  3. 在“阿尔卑斯网络协议”列表中,选择“HTTP2”。

    在 GUI 中选择 ALPN 协议

加载旧配置

启用默认配置文件是不可逆的。但是,如果您决定部署不需要默认配置文件,则可以加载在启用默认配置文件之前保存的旧配置。重新启动设备后,这些更改将生效。

使用 CLI 加载旧配置

在命令提示符下,键入:

shell

root@ns# clear config

root@ns# cd /nsconfig

root@ns# cp ns.conf.NS.11.0.jun.16 ns.conf

root@ns# reboot
<!--NeedCopy-->