Citrix ADC

SSL 卸载配置

要配置 SSL 卸载,必须在 Citrix ADC 设备上启用 SSL 处理并配置基于 SSL 的虚拟服务器。虚拟服务器将拦截 SSL 流量、解密流量并将其转发到绑定到虚拟服务器的服务。要保护时间敏感的流量,例如媒体流,可以配置 DTLS 虚拟服务器。要启用 SSL 卸载,必须导入有效的证书和密钥并将该对绑定到虚拟服务器。

启用 SSL

要处理 SSL 流量,必须启用 SSL 处理。您可以配置基于 SSL 的实体,例如虚拟服务器和服务,而无需启用 SSL 处理。但是,在启用 SSL 处理之前,它们不起作用。

使用 CLI 启用 SSL 处理

在命令提示窗口中,键入:

enable ns feature ssl

show ns feature

示例:

enable ns feature SSL
 Done
show ns feature

        Feature                        Acronym              Status
        -------                        -------              ------
 1)     Web Logging                    WL                   OFF
 2)     Surge Protection               SP                   ON
 3)     Load Balancing                 LB                   ON
 .
 .
 .
 9)     SSL Offloading                 SSL                  ON
 .
 .
 .
 24)    NetScaler Push                 push                 OFF
 Done

使用 GUI 启用 SSL 处理

导航到系统”>“设 置”,然后在模式和功能组中单击配置基本功能,然后单击SSL 卸载

配置服务

在 Citrix ADC 设备上,服务表示物理服务器或物理服务器上的应用程序。配置后,服务处于禁用状态,直到设备能够到达网络上的物理服务器并监视其状态。

使用 CLI 添加服务

在命令提示符下,键入以下命令以添加服务并验证配置:

add service <name> (<IP> | <serverName>) <serviceType> <port>
show service <serviceName>

示例:

add service sslsvc 198.51.100.225 SSL 443

Done

sh ssl service sslsvc

            Advanced SSL configuration for Back-end SSL Service sslsvc:
            DH: DISABLED
            DH Private-Key Exponent Size Limit: DISABLED    Ephemeral RSA: DISABLED
            Session Reuse: ENABLED          Timeout: 300 seconds
            Cipher Redirect: DISABLED
            SSLv2 Redirect: DISABLED
            ClearText Port: 0
            Server Auth: DISABLED
            SSL Redirect: DISABLED
            Non FIPS Ciphers: DISABLED
            SNI: DISABLED
            OCSP Stapling: DISABLED
            SSLv2: DISABLED  SSLv3: ENABLED  TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
            Send Close-Notify: YES
            Strict Sig-Digest Check: DISABLED
            Zero RTT Early Data: ???
            DHE Key Exchange With PSK: ???
            Tickets Per Authentication Context: ???

            ECC Curve: P_256, P_384, P_224, P_521

    1)      Cipher Name: DEFAULT_BACKEND
            Description: Default cipher list for Backend SSL session
     Done

使用 CLI 修改或删除服务

要修改服务,请使用 set service 命令,这就像使用添加服务命令一样,只是输入现有服务的名称。要删除服务,请使用 rm service 命令,该命令仅接受 <name> 参数。

使用 GUI 配置服务

导航到流量管理”>“负载平衡”>“服务”,创建服务,然后将协议指定为 SSL。

SSL 虚拟服务器配置

安全会话需要在 Citrix ADC 设备上建立客户端与基于 SSL 的虚拟服务器之间的连接。SSL 虚拟服务器会在将其发送到绑定到虚拟服务器的服务之前拦截 SSL 流量、解密并对其进行处理。

注意: SSL 虚拟服务器在 Citrix ADC 设备上被标记为“关闭”,直到有效的证书/密钥对以及至少一个服务绑定到该服务器。基于 SSL 的虚拟服务器是协议类型 SSL 或 SSL_TCP 的负载平衡虚拟服务器。必须在 Citrix ADC 设备上启用负载平衡功能。

使用 CLI 添加基于 SSL 的虚拟服务器

在命令提示窗口中,键入以下命令以创建基于 SSL 的虚拟服务器并验证配置:

add lb vserver <name> (serviceType) <IPAddress> <port>
show ssl vserver <name>

示例:

add lb vserver sslvs SSL 192.0.2.240 443
Done

sh ssl vserver sslvs

            Advanced SSL configuration for VServer sslvs:
            DH: DISABLED
            DH Private-Key Exponent Size Limit: DISABLED    Ephemeral RSA: ENABLED          Refresh Count: 0
            Session Reuse: ENABLED          Timeout: 120 seconds
            Cipher Redirect: DISABLED
            SSLv2 Redirect: DISABLED
            ClearText Port: 0
            Client Auth: DISABLED
            SSL Redirect: DISABLED
            Non FIPS Ciphers: DISABLED
            SNI: DISABLED
            OCSP Stapling: DISABLED
            HSTS: DISABLED
            HSTS IncludeSubDomains: NO
            HSTS Max-Age: 0
            SSLv2: DISABLED  SSLv3: ENABLED  TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
            Push Encryption Trigger: Always
            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
            ECC Curve: P_256, P_384, P_224, P_521

    1)      Cipher Name: DEFAULT
            Description: Default cipher list with encryption strength >= 128bit
     Done

使用 CLI 修改或删除基于 SSL 的虚拟服务器

要修改 SSL 虚拟服务器的负载平衡属性,请使用set lb vserver 命令。set 命令与命add lb vserver 令类似,只是输入现有虚拟服务器的名称。要修改基于 SSL 的虚拟服务器的 SSL 属性,请使用set ssl vserver 命令。有关详细信息,请参阅本页后面的“SSL 虚拟服务器参数”部分。

要删除 SSL 虚拟服务器,请使用 rm lb vserver 命令,该命令仅接受 <name> 参数。

使用 GUI 配置基于 SSL 的虚拟服务器

导航到流量管理”>“负载平衡”>“虚拟服务器,创建虚拟服务器,然后将协议指定为 SSL。

将服务绑定到 SSL 虚拟服务器

ADC 设备将解密的 SSL 数据转发到网络中的服务器。要转发数据,表示这些物理服务器的服务必须绑定到接收 SSL 数据的虚拟服务器。

通常,ADC 设备与物理服务器之间的链接是安全的。因此,无需加密设备和物理服务器之间的数据传输。但是,您可以通过加密设备和服务器之间的数据传输来提供端到端加密。有关详细信息,请参阅使用端到端加密配置 SSL 卸载

注意: 在将服务绑定到基于 SSL 的虚拟服务器之前,启用 ADC 设备上的负载平衡功能。

使用 CLI 将服务绑定到虚拟服务器

在命令提示符下,键入以下命令以将服务绑定到虚拟服务器并验证配置:

bind lb vserver <name> <serviceName>
show lb vserver <name>

示例:

bind lb vserver sslvs sslsvc
     Done

sh lb vserver sslvs

            sslvs (192.0.2.240:443) - SSL       Type: ADDRESS
            State: DOWN[Certkey not bound]
            Last state change was at Wed May  2 11:43:04 2018
            Time since last state change: 0 days, 00:13:21.150
            Effective State: DOWN
            Client Idle Timeout: 180 sec
            Down state flush: ENABLED
            Disable Primary Vserver On Down : DISABLED
            Appflow logging: ENABLED
            No. of Bound Services :  1 (Total)       0 (Active)
            Configured Method: LEASTCONNECTION      BackupMethod: ROUNDROBIN
            Mode: IP
            Persistence: NONE
            Vserver IP and Port insertion: OFF
            Push: DISABLED  Push VServer:
            Push Multi Clients: NO
            Push Label Rule: none
            L2Conn: OFF
            Skip Persistency: None
            Listen Policy: NONE
            IcmpResponse: PASSIVE
            RHIstate: PASSIVE
            New Service Startup Request Rate: 0 PER_SECOND, Increment Interval: 0
            Mac mode Retain Vlan: DISABLED
            DBS_LB: DISABLED
            Process Local: DISABLE
            Traffic Domain: 0
            TROFS Persistence honored: ENABLED
            Retain Connections on Cluster: NO
    1) sslsvc (198.51.100.225: 443) - SSL State: DOWN       Weight: 1
     Done

使用 CLI 从虚拟服务器取消绑定服务

在命令提示符下,键入以下命令:

unbind lb vserver <name> <serviceName>

示例:

unbind lb vserver sslvs sslsvc
     Done

使用 GUI 将服务绑定到虚拟服务器

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 打开虚拟服务器,然后单击“服务”部分将服务绑定到虚拟服务器。

为多个站点的安全托管配置服务器名称指示 (SNI) 虚拟服务器

虚拟主机被 Web 服务器用来托管具有相同 IP 地址的多个域名。该设备通过使用透明 SSL 服务或基于虚拟服务器的 SSL 卸载从 Web 服务器卸载 SSL 处理来支持托管多个安全域。但是,当多个网站托管在同一虚拟服务器上时,SSL 握手将在预期的主机名发送到虚拟服务器之前完成。因此,设备无法确定在建立连接后向客户端显示哪个证书。通过在虚拟服务器上启用 SNI 来解决此问题。SNI 是客户端用于在握手启动期间提供主机名的传输层安全性 (TLS) 扩展。ADC 设备将此主机名与公用名进行比较,如果不匹配,则将其与使用者备用名 (SAN) 进行比较。如果名称匹配,设备将向客户端显示相应的证书。

如果同一组织控制这些域并且二级域名相同,则通配符 SSL 证书有助于在多个子域上启用 SSL 加密。例如,使用通用名称“*.sports.net”颁发给体育网络的通配符证书可用于保护域,例如“登录 .sports.net”和“帮助运动网络”,但不能用于“登录 .ftp.sports.net”。“

注意:在 ADC 设备 上,只比较 SAN字段中的域名、URL 和电子邮件 ID DNS 条目。

您可以使用 -SNICert 选项将多个服务器证书绑定到单个 SSL 虚拟服务器或透明服务。如果在虚拟服务器或服务上启用了 SNI,则虚拟服务器或服务将颁发这些证书。您可以随时启用 SNI。

使用 CLI 将多个服务器证书绑定到单个 SSL 虚拟服务器

在命令提示符下,键入以下命令以配置 SNI 并验证配置:

set ssl vserver <vServerName>@ [-SNIEnable ( ENABLED | DISABLED )]

bind ssl vserver <vServerName>@ -certkeyName <string> -SNICert

show ssl vserver <vServerName>

要使用 CLI 将多个服务器证书绑定到透明服务,请在上述命令中将替换vserver 为服务和vservername 服务名称。

注意: 使用 -clearTextPort 80 选项创建 SSL 服务。

使用 GUI 将多个服务器证书绑定到单个 SSL 虚拟服务器

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 打开 SSL 虚拟服务器,然后在书”中选择服务器证书
  3. 添加证书或从列表中选择证书,然后单击 SNI 的服务器证书
  4. 高级设置中,选择 SSL 参数
  5. 点击 SNI 启用

支持后端服务上的 SNI

注意:DTLS 后端服务不支持 SNI。

Citrix ADC 设备在后端支持服务器名称指示 (SNI)。也就是说,公用名称作为客户端 hello 中的服务器名称发送到后端服务器,以便成功完成握手。此支持有助于满足联邦系统集成商客户安全要求。此外,SNI 提供了仅使用一个端口而不是在防火墙上打开数百个不同的 IP 地址和端口的优势。

联邦系统集成商客户安全要求包括对 Active Directory 联合身份验证服务 (ADFS) 3.0 在 2012R2 和 WAP 服务器的支持。为满足此要求,需要在 Citrix ADC 设备上的后端支持 SNI。

注意:

要使 SNI 工作,客户端 hello 中的服务器名称必须与绑定到 SSL 虚拟服务器的后端服务上配置的主机名匹配。例如,如果后端服务器的主机名为 www.mail.example.com,则必须将启用 SNA 的后端服务配置为服务器名称https://www.mail.example.com。此主机名必须与客户端 hello 中的服务器名匹配。

支持后端服务上的动态 SNI

Citrix ADC 设备支持后端 TLS 连接上的动态 SNI。也就是说,设备学习客户端连接中的 SNI,并在服务器端连接中使用它。您不再需要在 SSL 服务、服务组或配置文件中指定公用名称。客户端 Hello 消息的 SNI 扩展中收到的公用名称将转发到后端 SSL 连接。

之前,您必须在 SSL 服务、服务组和 SSL 配置文件上配置静态 SNI。因此,仅将配置的静态 SNI 扩展发送到服务器。如果客户端需要同时访问多个域,则 ADC 设备无法将从客户端接收的 SNI 发送到后端服务。相反,它发送了已配置的静态公用名称。现在,如果后端服务器配置为多个域,则服务器可以根据从设备收到的 Client Hello 消息中收到的 SNI 使用正确的证书进行响应。

注意点:

  • 必须在前端启用 SNI,并将正确的 SNI 证书绑定到 SSL 虚拟服务器。如果不在前端启用 SNI,则 SNI 信息不会传递到后端。

  • 启用服务器身份验证后,服务器证书将由 CA 证书验证,服务器证书中的公用名称 /SAN 条目与 SNI 匹配。因此,CA 证书必须绑定到服务。

  • 启用动态 SNI 时,后端连接和 SSL 会话的重用基于 SNI。

启用动态 SNI 时,SSL 监视器不会发送 SNI。对于基于 SNI 的探测,请将配置静态 SNI 的后端配置文件附加到 SSL 监视器。必须使用与 SNI 相同的自定义标头配置监视器。

使用 CLI 在后端服务上配置 SNI

在命令提示窗口中,键入:

add service <name>  <IP>  <serviceType>  <port>

add lb vserver <name>  <IPAddress> <serviceType>  <port>

bind lb vserver <name> <serviceName>

set ssl service <serviceName> -SNIEnable ENABLED -commonName <string>

set ssl profile <name> -SNIEnable ENABLED

示例:

    add service service_ssl 198.51.100.100 SSL 443

    add lb vserver ssl-vs 203.0.113.200 SSL 443

    bind lb vserver ssl-vs service_ssl

    set ssl service service_ssl -SNIEnable ENABLED –commonName www.example.com

    set ssl profile sslprof -SNIEnable ENABLED

使用 GUI 在后端服务上配置 SNI

  1. 导航到流量管理”>“负载平衡”>“服务”
  2. 选择 SSL 服务,然后在高级设置中单击SSL 参数
  3. 点击 SNI 启用

    启用 SNI

使用 GUI 在 SSL 配置文件上配置 SNI

  1. 导航到 系统 > 配置文件 > SSL 配置文件
  2. 单击添加
  3. 基本设置中,选择SNI 启用

    个人资料中的 SNI

  4. 单击确定

将安全监视器绑定到启用 SNA 的后端服务

您可以将 HTTP、HTTP-ECV、TCP 或 TCP-ECV 类型的安全监视器绑定到支持 SNI 的后端服务和服务组。但是,如果启用了动态 SNI,则监视器探头不会发送 SNI 扩展。要发送 SNI 探测器,请在后端 SSL 配置文件中启用静态 SNI 并将配置文件绑定到监视器。将监视器中的自定义标头设置为在监视器探测器的客户端 hello 中作为 SNI 扩展发送的服务器名称。

使用 CLI 配置安全监视器并将其绑定到启用 SNI 的后端服务

在命令提示窗口中,键入:

add lb monitor <monitorName> <type> -secure YES
add ssl profile <name> -sslProfileType BackEnd
set lb monitor <monitorName> <type> -customHeaders <string> -sslprofile <backend ssl profile>
set ssl profile <name> -sniEnable ENABLED -commonName <string>
bind service <name> -monitorName <string>

示例:

add ssl profile sni_backend_profile -sslProfileType BackEnd
set ssl profile sni_backend_profile -sniEnable ENABLED -commonName example.com
add lb monitor http-ecv-mon HTTP-ECV -secure YES
set monitor http-ecv-mon HTTP-ECV -customHeaders "Host: example.com\r\n" -sslprofile sni_backend_profile
bind service ssl_service –monitorName http-ecv-mon

使用 GUI 配置安全监视器并将其绑定到启用了 SNI 的后端服务

  1. 导航到 系统 > 配置文件 > SSL 配置文件
  2. 单击添加
  3. 指定配置文件的名称,然后在 SSL 配置文件类型中选择 后端

    支持 SNI 的 SSL 配置文件

  4. 指定公用名称(与主机标头相同),然后选择 SNI 启用

    启用了 SNI 的 SSL 配置文件中的公用名称

  5. 单击确定
  6. 导航到流量管理 > 负载平衡 > 监视器
  7. 单击添加
  8. 指定监视器的名称。在类型中,选择“HTTP”、“HTTP-ECV”、“TCP”或“TCP-ECV”。
  9. 指定一个 自定义标头

    启用了 SNI 的 SSL 配置文件中的自定义标头

  10. 选择 安全
  11. SSL 配置文件中,选择在上述步骤中创建的后端 SSL 配置文件。
  12. 单击创建

    创建启用 SNI 的 SSL 配置文件

  13. 导航到流量管理”>“负载平衡”>“服务”
  14. 选择一个 SSL 服务,然后单击 编辑
  15. 在“监 器”中,单击添加绑定”,选择在上述步骤中创建的监视器,然后单击绑定

    将安全监视器绑定到启用 SNI 的 SSL 服务

使用 GUI 配置安全监视器并将其绑定到启用 SNA 的后端服务

  1. 导航到 流量管理 > 负载平衡 > 监视器
  2. 添加 HTTP-ECVTCP-ECV 类型的监视器,并指定 自定义标头
  3. 选择 创建
  4. 导航到流量管理 > 负载平衡 > 服务
  5. 选择一个 SSL 服务,然后单击 编辑
  6. 监视器中,单击 添加绑定,选择在步骤 3 中创建的监视器,然后单击 绑定

添加或更新证书密钥对

备注:

如果您没有现有证书和密钥,请参阅创建证书

要创建 ECDSA 证书密钥对,请单击创建 ECDSA 证书密钥对

在版本 41.x 中,最多支持 63 个字符的证书名称。

对于任何 SSL 事务,服务器都需要有效的证书以及相应的私钥和公钥对。SSL 数据使用服务器的公钥进行加密,该公钥可通过服务器的证书获得。解密需要相应的私钥。添加 SSL 证书密钥对时使用的私钥密码将使用每个 Citrix ADC 设备的唯一加密密钥保存。

ADC 设备从服务器卸载 SSL 事务。因此,设备上必须存在服务器的证书和私钥,并且证书必须与其相应的私钥配对。此证书密钥对必须绑定到处理 SSL 事务的虚拟服务器。

注意: Citrix ADC 设备上的默认证书为 2048 位。在早期版本中,默认证书为 512 位或 1024 位。升级到版本 11.0 后,必须删除以开头的所有旧证书密钥对"ns-",然后重新启动设备以自动生成 2048 位默认证书。

证书和密钥必须位于 Citrix ADC 设备的本地存储中,才能将它们添加到设备中。如果您的证书或密钥文件不在设备上,请先将其上传到设备,然后再创建对。

重要提示: 默认情况下,证书和密钥存储在 /nsconfig/ssl 目录中。如果证书或密钥存储在任何其他位置,则必须提供 Citrix ADC 设备上文件的绝对路径。Citrix ADC FIPS 设备不支持外部密钥(非 FIPS 密钥)。在 FIPS 设备上,无法从本地存储设备(如硬盘或闪存)加载密钥。FIPS 密钥必须存在于设备的硬件安全模块 (HSM) 中。

在 Citrix ADC MPX 设备和 Citrix ADC FIPS 设备上,仅支持 RSA 私钥。在 VPX 虚拟设备上,支持 RSA 和 DSA 私钥。在 SDX 设备上,如果 SSL 芯片已分配给实例,则仅支持 RSA 私有密钥。但是,如果没有将 SSL 芯片分配给实例,则支持 RSA 和 DSA 私有密钥。在所有情况下,您都可以使用 RSA 或 DSA 密钥绑定 CA 证书。

设置通知期限并启用到期监视器,以便在证书到期之前发出提示。

Citrix ADC 设备支持以下输入格式的证书和私钥文件:

  • PEM-增强隐私的邮件
  • DER-可分辨的编码规则
  • PFX-个人信息交换

该软件会自动检测格式。因此,您不再需要在通知参数中指定格式。如果您确实指定了格式(正确或不正确),软件将忽略它。证书和密钥文件的格式必须相同。

注意: 必须使用以下哈希算法之一对证书进行签名:

  • MD5
  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384(仅在前端支持)
  • SHA-512(仅在前端支持)

MPX 设备支持 512 位或更多位的证书,最多具有以下大小:

  • 虚拟服务器上的 4096 位服务器证书
  • 服务上的 4096 位客户端证书
  • 4096 位 CA 证书(包括中间证书和根证书)
  • 后端服务器上的 4096 位证书
  • 4096 位客户端证书(如果在虚拟服务器上启用了客户端身份验证)

VPX 虚拟设备支持 512 位或更多位的证书,最多具有以下大小:

  • 虚拟服务器上的 4096 位服务器证书
  • 服务上的 4096 位客户端证书
  • 4096 位 CA 证书(包括中间证书和根证书)
  • 后端服务器上的 4096 位证书
  • 2048 位客户端证书(如果在虚拟服务器上启用了客户端身份验证)

注意

Citrix ADC SDX 设备支持 512 位或更多位的证书。设备上托管的每个 Citrix ADC VPX 实例都支持 VPX 虚拟设备的上述证书大小。但是,如果将 SSL 芯片分配给实例,则该实例支持 MPX 设备支持的证书大小。

使用 CLI 添加证书密钥对

在命令提示符处,键入以下命令以添加证书密钥对并验证配置:

add ssl certKey <certkeyName> -cert <string>[(-key <string> [-password]) | -fipsKey <string>] [-inform ( DER | PEM )] [<passplain>] [-expiryMonitor ( ENABLED | DISABLED ) [-notificationPeriod <positive_integer>]]

show ssl certKey [<certkeyName>]

示例:

add ssl certKey sslckey -cert server_cert.pem -key server_key.pem -password ssl -expiryMonitor ENABLED -notificationPeriod 30
 Done
Note: For FIPS appliances, replace -key with -fipskey

show ssl certKey sslckey
        Name: sslckey           Status: Valid,   Days to expiration:8418
        Version: 3
        Serial Number: 01
        Signature Algorithm: md5WithRSAEncryption
        Issuer:  C=US,ST=SJ,L=SJ,O=NS,OU=NSSSL,CN=www.root.com
        Validity
                Not Before: Jul 15 02:25:01 2005 GMT
                Not After : Nov 30 02:25:01 2032 GMT
        Subject:  C=US,ST=SJ,L=SJ,O=NS,OU=NSSSL,CN=www.server.com
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048
 Done

使用 CLI 更新或删除证书密钥对

要修改证书密钥对中的到期监视器或通知期限,请使用set ssl certkey 命令。要替换证书密钥对中的证书或密钥,请使用update ssl certkey 命令。该update ssl certkey 命令具有用于覆盖域检查的额外参数。对于这两个命令,请输入现有证书密钥对的名称。要删除 SSL 证书密钥对,请使用 rm ssl certkey 命令,该命令仅接受 <certkeyName> 参数。

示例:

set ssl certKey <certkeyName> [-expiryMonitor ( ENABLED | DISABLED )
       [-notificationPeriod <positive_integer>]]

update ssl certKey <certkeyName> [-cert <string> [-password]] [-key
       <string> | -fipsKey <string>] [-inform <inform>] [-noDomainCheck]

使用 GUI 添加或更新证书密钥对

  1. 导航到 流量管理 > SSL > 证书 > 服务器

    安装证书

  2. 输入以下参数的值,然后单击安装

    • 证书密钥对名称-证书和私钥对的名称。

    • 证书文件名-从证书颁发机构收到的签名证书。

    • 密钥文件名-用于形成证书密钥对的私钥文件的名称和路径(可选)。

    类型值

将证书密钥对绑定到 SSL 虚拟服务器

重要提示:在将证书绑定到 SSL 虚拟服务器之前,将任何中间证书链接到此证书。有关链接证书的信息,请参阅创建证书链

用于处理 SSL 事务的证书必须绑定到接收 SSL 数据的虚拟服务器。如果有多个虚拟服务器接收 SSL 数据,则必须将有效的证书密钥对绑定到每个服务器。

使用已上传到 Citrix ADC 设备的有效现有 SSL 证书。作为测试目的的替代方案,请在设备上创建您自己的 SSL 证书。通过在设备上使用 FIPS 密钥创建的中间证书无法绑定到 SSL 虚拟服务器。

在 SSL 握手期间,在客户端身份验证期间的证书请求消息中,服务器列出绑定到服务器的所有证书颁发机构 (CA) 的可分辨名称 (DNS)。服务器仅接受此列表中的客户端证书。如果不希望将特定 CA 证书的 DN 名称发送到 SSL 客户端,请设置skipCA 标志。此设置指示不得将特定 CA 证书的可分辨名称发送到 SSL 客户端。

有关如何创建自己的证书的详细信息,请参阅管理证书

注意:Citrix 建议您仅使用由受信任的证书颁发机构颁发的有效 SSL 证书。

使用 CLI 将 SSL 证书密钥对绑定到虚拟服务器

在命令提示符处,键入以下命令以将 SSL 证书密钥对绑定到虚拟服务器并验证配置:

-  bind ssl vserver <vServerName> -certkeyName <certificate-KeyPairName> -CA -skipCAName
-  show ssl vserver <vServerName>

示例:

bind ssl vs vs1 -certkeyName cert2 -CA -skipCAName
 Done
sh ssl vs vs1

 Advanced SSL configuration for VServer vs1:

 DH: DISABLED

 Ephemeral RSA: ENABLED Refresh Count: 0

 Session Reuse: ENABLED Timeout: 120 seconds

 Cipher Redirect: DISABLED

 SSLv2 Redirect: DISABLED

 ClearText Port: 0

 Client Auth: DISABLED

 SSL Redirect: DISABLED

 Non FIPS Ciphers: DISABLED

 SNI: DISABLED

 OCSP Stapling: DISABLED

 HSTS: DISABLED

 IncludeSubDomains: NO

 HSTS Max-Age: 0

 SSLv2: DISABLED SSLv3: ENABLED  TLSv1.0: ENABLED  TLSv1.1: DISABLED  TLSv1.2: DISABLED

 Push Encryption Trigger: Always

 Send Close-Notify: YES

 Strict Sig-Digest Check: DISABLED

ECC Curve: P_256, P_384, P_224, P_521

 1) CertKey Name: cert1 CA Certificate OCSPCheck: Optional CA_Name Sent
 2) CertKey Name: cert2 CA Certificate OCSPCheck: Optional CA_Name Skipped
 1) Cipher Name: DEFAULT

Description: Default cipher list with encryption strength >= 128bit
Done

使用 CLI 从虚拟服务器取消绑定 SSL 证书密钥对

如果您尝试使用unbind ssl certKey <certkeyName> 命令从虚拟服务器解除绑定证书密钥对,将显示一条错误消息。出现错误是因为命令的语法已更改。在命令提示符下,键入以下命令:

unbind ssl vserver <vServerName> -certkeyName <string>

示例:

unbind ssl vserver vssl -certkeyName sslckey

使用 GUI 将 SSL 证书密钥对绑定到虚拟服务器

  1. 导航到 流量管理 > 负载平衡 > 虚拟服务器 ,然后打开 SSL 虚拟服务器。在证书部分中单击。

    将证书绑定到虚拟服务器

  2. 单击箭头以选择证书密钥对。

    单击箭头选择证书密钥对

  3. 从列表中选择证书密钥对。

    选择证书密钥对

  4. 将证书密钥对绑定到虚拟服务器。要将服务器证书添加为 SNI 证书,请选择 SNI 的服务器证书

    将证书绑定到虚拟服务器

SSL 虚拟服务器参数

为 SSL 虚拟服务器设置高级 SSL 配置。您还可以在 SSL 配置文件中设置许多这些参数。有关可以在 SSL 配置文件中设置的参数的信息,请参阅SSL 配置文件参数

使用 CLI 设置 SSL 虚拟服务器参数

在命令提示窗口中,键入:

set ssl vserver <vServerName>@ [-clearTextPort <port>] [-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>]] [-sslv2Redirect ( ENABLED | DISABLED )[-sslv2URL <URL>]] [-clientAuth ( ENABLED | DISABLED ) [-clientCert ( Mandatory | Optional )]] [-sslRedirect ( ENABLED | DISABLED )][-redirectPortRewrite ( ENABLED | DISABLED )] [-ssl2 ( ENABLED | DISABLED )] [-ssl3 ( ENABLED | DISABLED )] [-tls1 ( ENABLED | DISABLED )] [-tls11 ( ENABLED | DISABLED )] [-tls12 ( ENABLED | DISABLED )][-tls13 ( ENABLED | DISABLED )] [-SNIEnable ( ENABLED | DISABLED )][-ocspStapling ( ENABLED | DISABLED )] [-pushEncTrigger <pushEncTrigger>] [-sendCloseNotify ( YES | NO )] [-dtlsProfileName <string>] [-sslProfile <string>] [-HSTS ( ENABLED | DISABLED )][-maxage <positive_integer>] [-IncludeSubdomains ( YES | NO )][-strictSigDigestCheck ( ENABLED | DISABLED )] [-zeroRttEarlyData (ENABLED | DISABLED )] [-tls13SessionTicketsPerAuthContext <positive_integer>] [-dheKeyExchangeWithPsk ( YES | NO )]

Diffie-Hellman (DH) 参数

要在设备上使用需要 DH 密钥交换来设置 SSL 事务的密码,请在设备上启用 DH 密钥交换。根据您的网络配置其他设置。

要列出必须使用 CLI 设置 DH 参数的密码,请键入:sh 密码 DH。

要列出必须使用配置实用程序设置 DH 参数的密码,请导航至 流量管理 > SSL > 密码组,然后双击 DH

有关如何启用 DH 密钥交换的详细信息,请参阅生成一个差异-地狱曼 (DH) 密钥

使用 CLI 配置 DH 参数

在命令提示符下,键入以下命令来配置 DH 参数并验证配置:

-  `set ssl vserver <vserverName> -dh <Option> -dhCount <RefreshCountValue> -filepath <string>
-  show ssl vserver <vServerName>`

示例:

set ssl vserver vs-server -dh ENABLED  -dhFile /nsconfig/ssl/ns-server.cert -dhCount 1000
Done

show ssl vserver vs-server

            Advanced SSL configuration for VServer vs-server:
            DH: ENABLED
            Ephemeral RSA: ENABLED          Refresh Count: 1000
            Session Reuse: ENABLED          Timeout: 120 seconds
            Cipher Redirect: DISABLED
            SSLv2 Redirect: DISABLED
            ClearText Port: 0
            Client Auth: DISABLED
            SSL Redirect: DISABLED
            Non FIPS Ciphers: DISABLED
            SNI: DISABLED
            OCSP Stapling: DISABLED
            HSTS: DISABLED
            HSTS IncludeSubDomains: NO
            HSTS Max-Age: 0
            SSLv2: DISABLED SSLv3: ENABLED  TLSv1.0: ENABLED TLSv1.2: ENABLED  TLSv1.2: ENABLED

    1)      Cipher Name: DEFAULT
            Description: Predefined Cipher Alias
Done

使用 GUI 配置 DH 参数

  1. 导航到流量管理”>“负载平衡”>“虚拟服务器,然后打开虚拟服务器。
  2. SSL 参数部分中,选择启用 DH 参 数”,然后指定刷新计数和文件路径。

临时 RSA

临时 RSA 允许导出客户端与安全服务器通信,即使服务器证书不支持导出客户端(1024 位证书)也是如此。如果要阻止导出客户端访问安全的 Web 对象或资源,则需要禁用临时 RSA 密钥交换。

默认情况下,在 Citrix ADC 设备上启用此功能,刷新计数设置为零(无限使用)。

注意:

将导出密码绑定到基于 SSL 或 TCP 的 SSL 虚拟服务器或服务时,会自动生成临时 RSA 密钥。删除导出密码时,不会删除 eRSA 密钥。以后当另一个导出密码绑定到基于 SSL 或 TCP 的 SSL 虚拟服务器或服务时,它会重复使用。系统重新启动时删除 eRSA 密钥。

使用 CLI 配置临时 RSA

在命令提示符下,键入以下命令以配置临时 RSA 并验证配置:

set ssl vserver <vServerName> -eRSA (enabled | disabled) -eRSACount <positive_integer>
show ssl vserver <vServerName>

示例:

set ssl vserver vs-server -eRSA ENABLED -eRSACount 1000
 Done

show ssl vserver vs-server

        Advanced SSL configuration for VServer vs-server:
        DH: DISABLED
        Ephemeral RSA: ENABLED          Refresh Count: 1000
        Session Reuse: ENABLED          Timeout: 120 seconds
        Cipher Redirect: DISABLED
        SSLv2 Redirect: DISABLED
        ClearText Port: 0
        Client Auth: DISABLED
        SSL Redirect: DISABLED
        Non FIPS Ciphers: DISABLED
        SNI: DISABLED
        OCSP Stapling: DISABLED
        HSTS: DISABLED
        HSTS IncludeSubDomains: NO
        HSTS Max-Age: 0
        SSLv2: DISABLED SSLv3: ENABLED  TLSv1.0: ENABLED TLSv1.2: ENABLED  TLSv1.2: ENABLED

1)      Cipher Name: DEFAULT
        Description: Predefined Cipher Alias
 Done

使用 GUI 配置临时 RSA

  1. 导航到流量管理”>“负载平衡”>“虚拟服务器,然后打开虚拟服务器。
  2. SSL 参数部分中,选择启用临时 RSA,然后指定刷新计数。

会话重复使用

对于 SSL 事务,建立初始 SSL 握手需要 CPU 密集型公钥加密操作。大多数握手操作都与 SSL 会话密钥(客户端密钥交换消息)的交换相关联。当客户端会话空闲了一段时间,然后恢复时,SSL 握手通常会重新执行。启用会话重用后,会避免从客户端收到的会话恢复请求的会话密钥交换。

默认情况下,在 Citrix ADC 设备上启用会话重用。启用此功能可减少服务器负载,缩短响应时间,并增加服务器可以支持的每秒 SSL 事务数 (TPS)。

使用 CLI 配置会话重用

在命令提示符下,键入以下命令以配置会话重用并验证配置:

set ssl vserver <vServerName> -sessReuse ( ENABLED | DISABLED ) -sessTimeout <positive_integer>
show ssl vserver <vServerName>

示例:

set ssl vserver vs-ssl -sessreuse enabled -sesstimeout 600
 Done

show ssl vserver vs-ssl

        Advanced SSL configuration for VServer vs-ssl:
        DH: DISABLED
        Ephemeral RSA: ENABLED          Refresh Count: 1000
        Session Reuse: ENABLED          Timeout: 600 seconds
        Cipher Redirect: DISABLED
        SSLv2 Redirect: DISABLED
        ClearText Port: 0
        Client Auth: DISABLED
        SSL Redirect: DISABLED
        Non FIPS Ciphers: DISABLED
        SNI: DISABLED
        OCSP Stapling: DISABLED
        HSTS: DISABLED
        HSTS IncludeSubDomains: NO
        HSTS Max-Age: 0
        SSLv2: DISABLED SSLv3: ENABLED  TLSv1.0: ENABLED TLSv1.2: ENABLED  TLSv1.2: ENABLED

1)      CertKey Name: Auth-Cert-1       Server Certificate

1)      Cipher Name: DEFAULT
        Description: Predefined Cipher Alias
 Done

使用 GUI 配置会话重用

  1. 导航到流量管理”>“负载平衡”>“虚拟服务器,然后打开虚拟服务器。
  2. SSL 参数部分中,选择启用会话重用,然后指定会话保持活动状态的时间。

SSL 协议设置

Citrix ADC 设备支持 SSLv3、TLSv1、TLSv1.1 和 TLSv1.2 协议。可根据您的部署和连接到设备的客户端类型的要求在设备上设置其中的每个协议。

TLS 协议版本 1.0、1.1 和 1.2 比旧版本的 TLS/SSL 协议更安全。但是,为了支持旧系统,许多 TLS 实现保持与 SSLv3 协议的向后兼容性。在 SSL 握手中,使用客户端和 Citrix ADC 设备上配置的 SSL 虚拟服务器通用的最高协议版本。

在第一次握手尝试中,TLS 客户端提供它支持的最高协议版本。如果握手失败,客户端将提供较低的协议版本。例如,如果 TLS 1.1 版本的握手不成功,客户端将尝试通过提供 TLSv1.0 协议重新协商。如果尝试不成功,客户端将使用 SSLv3 协议重新尝试。“中间人”(MITM) 攻击者可以打破初始握手并触发 SSLv3 协议的重新协商,然后利用 SSLv3 中的漏洞。为了缓解此类攻击,您可以禁用 SSLv3 或不允许使用降级协议进行重新协商。但是,如果您的部署包含旧系统,则此方法可能不切实际。另一种方法是识别客户端请求中的信令密码套件值 (TLS_FALLBACK_SCSV)。

客户端 Hello 消息中的 TLS_FALLBACK_SCSV 值向虚拟服务器指示客户端以前尝试使用更高的协议版本进行连接,并且当前请求是回退。如果虚拟服务器检测到此值,并且它支持的版本高于客户端指定的版本,则会拒绝连接并发出致命警报。如果满足以下条件之一,握手成功:

  • 客户端问候消息中不包含 TLS_FALLBACK_SCSV 值。
  • 客户端 hello 中的协议版本是虚拟服务器支持的最高协议版本。

使用 CLI 配置 SSL 协议支持

在命令提示符下,键入以下命令以配置 SSL 协议支持并验证配置:

set ssl vserver <vServerName> -ssl2 ( ENABLED | DISABLED ) -ssl3 ( ENABLED | DISABLED ) -tls1 ( ENABLED | DISABLED ) -tls11 ( ENABLED | DISABLED ) -tls12 ( ENABLED | DISABLED )

show ssl vserver <vServerName>

示例:

set ssl vserver vs-ssl -tls11 ENABLED -tls12 ENABLED
Done

sh ssl vs vs-ssl

        Advanced SSL configuration for VServer vs-ssl:
            DH: DISABLED
            Ephemeral RSA: ENABLED                            Refresh Count: 0
            Session Reuse: ENABLED                              Timeout: 120 seconds
            Cipher Redirect: DISABLED
            SSLv2 Redirect: DISABLED
            ClearText Port: 0
            Client Auth: DISABLED
            SSL Redirect: DISABLED
            Non FIPS Ciphers: DISABLED
            SNI: DISABLED
            SSLv2: DISABLED        SSLv3: ENABLED    TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED
            Push Encryption Trigger: Always
            Send Close-Notify: YES
            1 bound certificate:

    1)      CertKey Name: mycert  Server Certificate
            1 configured cipher:

    1)      Cipher Name: DEFAULT
            Description: Predefined Cipher Alias

Done

使用 GUI 配置 SSL 协议支持

  1. 导航到流量管理”>“负载平衡”>“虚拟服务器,然后打开虚拟服务器。
  2. SSL 参数部分中,选择要启用的协议。

关闭通知

关闭通知是指示 SSL 数据传输结束的安全消息。需要在全局级别进行关闭通知设置。此设置适用于所有虚拟服务器、服务和服务组。有关全局设置的信息,请参阅本页后面的“全局 SSL 参数”部分。

除了全局设置之外,您还可以在虚拟服务器、服务或服务组级别设置关闭通知参数。因此,您可以灵活地为一个实体设置参数并为另一个实体取消设置参数。但是,请确保您在全局级别设置此参数。否则,实体级别的设置不适用。

使用 CLI 在实体级别配置关闭通知

在命令提示符下,键入以下任意命令来配置关闭通知功能并验证配置:

  1. 要在虚拟服务器级别进行配置,请键入:
set ssl vserver <vServerName> -sendCloseNotify ( YES | NO )
show ssl vserver <vServerName>
  1. 要在服务级别进行配置,请键入:
set ssl service <serviceName> -sendCloseNotify ( YES | NO )
show ssl service <serviceName>
  1. 要在服务组级别进行配置,请键入:
set ssl serviceGroup <serviceGroupName> -sendCloseNotify ( YES | NO )
show ssl serviceGroup <serviceGroupName>

示例:

set ssl vserver sslvsvr -sendCloseNotify YES

Done

使用 GUI 在实体级别配置关闭通知功能

  1. 导航到流量管理”>“负载平衡”>“虚拟服务器,然后打开虚拟服务器。
  2. SSL 参数部分中,选择发送关闭通知

全局 SSL 参数

SSL 配置的高级自定义解决了特定问题。您可以使用 set ssl parameter 命令或配置实用程序指定以下内容:

  • 要用于 SSL 事务的量子大小。
  • CRL 内存大小。
  • OCSP 高速缓存大小。
  • 拒绝 SSL 重新协商。
  • 为解密记录、加密记录或所有记录设置 PUSH 标志。
  • 如果客户端为一个域启动握手并为另一个域发送 HTTP 请求,则删除请求。
  • 设置触发加密的时间。 注意:指定的时间仅适用于使用 set ssl vserver 命令或配置实用程序设置基于计时器的加密。
  • NDCPP 合规性证书检查 — 在设备操作客户端(后端连接)时应用。在证书验证期间,如果 SSL 证书中存在 SAN,则忽略公用名称。
  • 启用基于 Cavium 芯片的设备(如 MPX 14000)的异构群集和基于 Intel Coleto 芯片的设备(如 MPX 15000 设备)的异构群集,其中包含不同数量的数据包引擎。(从版本 13.0 中添加的支持 47.x 版本。)
  • 在后端启用安全的重新协商(从版本 1.0 版本 58.x 添加的支持)。
  • 自适应 SSL 流量控制(从版本 13.0 版本 58.x 添加的支持)。

使用 CLI 配置全局 SSL 参数

在命令提示符下,键入以下命令以配置高级 SSL 设置并验证配置:

set ssl parameter [-quantumSize <quantumSize>] [-crlMemorySizeMB <positive_integer>] [-strictCAChecks (YES | NO)] [-sslTriggerTimeout <positive_integer>] [-sendCloseNotify (YES | NO)] [-encryptTriggerPktCount <positive_integer>] [-denySSLReneg <denySSLReneg>] [-insertionEncoding (Unicode|UTF-8)] [-ocspCacheSize <positive_integer>][- pushFlag <positive_integer>] [- dropReqWithNoHostHeader (YES | NO)] [-pushEncTriggerTimeout <positive_integer>] [-ndcppComplianceCertCheck ( YES | NO)] [-heterogeneousSSLHW (ENABLED | DISABLED )]
show ssl parameter

示例:

set ssl parameter -quantumSize 8 -crlMemorySizeMB 256 -strictCAChecks no -ssltriggerTimeout 100 -sendClosenotify no -encryptTriggerPktCount 45 -denySSLReneg NONSECURE -insertionEncoding unicode -ocspCacheSize 10 -pushFlag 3 -dropReqWithNoHostHeader YES  -pushEncTriggerTimeout 100 ms -ndcppComplianceCertCheck YES
Done

show ssl parameter
Advanced SSL Parameters
-----------------------
    SSL quantum size                                      : 8 KB
    Max CRL memory size                                   : 256 MB
    Strict CA checks                                      : NO
    Encryption trigger timeout                            : 100 ms
    Send Close-Notify                                     : NO
    Encryption trigger packet count                       : 45
    Deny SSL Renegotiation                                : NONSECURE
    Subject/Issuer Name Insertion Format                  : Unicode
    OCSP cache size                                       : 10 MB
    Push flag                                             : 0x3 (On every decrypted and encrypted record)
    Strict Host Header check for SNI enabled SSL sessions : YES
    PUSH encryption trigger timeout                       : 100 ms
    Crypto Device Disable Limit                           : 0
    Global undef action for control policies              : CLIENTAUTH
    Global undef action for data policies                 : NOOP
    Default profile                                       : DISABLED
    SSL Insert Space in Certificate Header                : YES
    Disable TLS 1.1/1.2 for SSL_BRIDGE secure monitors    : NO
    Disable TLS 1.1/1.2 for dynamic and VPN services      : NO
    Software Crypto acceleration CPU Threshold            : 0
    Hybrid FIPS Mode                                      : DISABLED
    Signature and Hash Algorithms supported by TLS1.2     : ALL
    SSL Interception Error Learning and Caching           : DISABLED
    SSL Interception Maximum Error Cache Memory           : 0 Bytes
    NDCPP Compliance Certificate Check                    : YES
    Heterogeneous SSL HW (Cavium and Intel Based)         : ENABLED
 Done

使用 GUI 配置 NdCPP 合规性证书检查

  1. 导航到流量管理”>“SSL”,然后在设置组中选择更改高级 SSL 设置

    更改高级设置

  2. 选择 NDCPP 合规性证书检查。单击确定

    NdCPP 合规性证书检查

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

注意: 13.0 版本 58.x 及更高版本支持此功能。在早期版本和版本中,后端只支持非安全的重新协商。

以下平台支持该功能: • VPX • 包含 N2 或 N3 芯片的 MPX 平台 • 基于 Intel Coleto SSL 芯片的平台

FIPS 平台尚不支持此功能。

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

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

  • FRONTEND_CLIENT
  • FRONTEND_CLIENTSERVER
  • NONSECURE

使用 CLI 启用安全重新协商

在命令提示窗口中,键入:

set ssl parameter -denySSLReneg <denySSLReneg>

示例:

set ssl parameter -denySSLReneg NONSECURE
 Done

sh ssl parameter
Advanced SSL Parameters
-----------------------
    SSL quantum size                                      : 8 KB
    Max CRL memory size                                   : 256 MB
    Strict CA checks                                      : NO
    Encryption trigger timeout                            : 100 ms
    Send Close-Notify                                     : YES
    Encryption trigger packet count                       : 45
    Deny SSL Renegotiation                                : NONSECURE
    Subject/Issuer Name Insertion Format                  : Unicode
    OCSP cache size                                       : 10 MB
    Push flag                                             : 0x0 (Auto)
    Strict Host Header check for SNI enabled SSL sessions : NO
    Match HTTP Host header with SNI                       : CERT
    PUSH encryption trigger timeout                       : 1 ms
    Crypto Device Disable Limit                           : 0
    Global undef action for control policies              : CLIENTAUTH
    Global undef action for data policies                 : NOOP
    Default profile                                       : ENABLED
    SSL Insert Space in Certificate Header                : YES
    Disable TLS 1.1/1.2 for SSL_BRIDGE secure monitors    : NO
    Disable TLS 1.1/1.2 for dynamic and VPN services      : NO
    Software Crypto acceleration CPU Threshold            : 0
    Hybrid FIPS Mode                                      : DISABLED
    Signature and Hash Algorithms supported by TLS1.2     : ALL
    SSL Interception Error Learning and Caching           : DISABLED
    SSL Interception Maximum Error Cache Memory           : 0 Bytes
    NDCPP Compliance Certificate Check                    : NO
    Heterogeneous SSL HW (Cavium and Intel Based)         : DISABLED
    Crypto Operation Queue Limit                          : 150%
 Done

使用 GUI 启用安全重新协商

  1. 导航到流量管理”>“SSL”>“更改高级 SSL 设置
  2. 拒绝 SSL 重新协商设置为“全部”以外的任何值。

    后端安全重新协商全局参数

自适应 SSL 流量控制

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

当设备上收到高流量且加密加速容量已满时,设备会开始排队连接以便稍后处理。目前,此队列的大小固定为 64 K,如果超出此值,设备将开始中断连接。

从版本 13.0 版本 58.x 中,用户可以配置一个值,即实际容量的百分比。通过此增强功能,如果队列中的元素数大于自适应和动态计算的限制,则设备将断开新的连接。此方法控制传入的 SSL 连接,并防止设备上的过度资源消耗和其他故障,例如负载平衡监视失败或对安全应用程序的响应缓慢。

如果队列为空,则设备可以继续接受连接。如果队列不为空,则加密系统已达到其容量,设备将开始对连接进行排队。

限制的计算基础是:

  • 设备的实际容量。
  • 用户配置的值占实际容量的百分比。默认值设置为 150%。

例如,如果设备在给定时间的实际容量为 1000 次/秒,并且配置了默认百分比,则设备断开连接的限制为 1500 次(1000 次的 150%)。

使用 CLI 配置操作队列限制

在命令提示窗口中,键入:

set ssl parameter -operationQueueLimit <positive_integer>

操作队列限制- 限制加密操作队列的容量百分比,超过此限制队列减少之前不接受新的 SSL 连接。默认值:150。最小值:0。最大值:10000

使用 GUI 配置操作队列限制

  1. 导航到流量管理”>“SSL”
  2. 设置中,单击更改高级 SSL 设置
  3. 操作队列限制”中键入一个值。默认值为 150。
  4. 单击确定

    操作队列限制

异构群集部署

从 13.0 版本 47.x 中,通过将 SSL 参数“异构 SSL 硬件”设置为“启用”,可以使用不同数量的数据包引擎形成 Citrix ADC MPX 设备的异构群集部署。例如,要形成基于 Cavium 芯片的设备(MPX 14000 或类似设备)和基于 Intel Coleto 芯片的设备(MPX 15000 或类似设备)的集群,请启用 SSL 参数“异构 SSL 硬件”。要使用同一芯片形成一个平台集群,请保留此参数的默认值 (禁用)。

注意: Citrix ADC SDX 设备上托管的 VPX 实例不支持此功能。

有关构建异构群集时支持的平台的更多信息,请参阅https://docs.citrix.com/zh-cn/citrix-adc/13/clustering/support-for-heterogeneous-cluster.html

使用 CLI 启用异构群集

在命令提示窗口中,键入:

set ssl parameter -heterogeneousSSLHW ENABLED

使用 GUI 启用异构群集

  1. 导航到流量管理”>“SSL”,然后在设置组中选择更改高级 SSL 设置
  2. 选择 Heterogeneous SSL HW。单击确定

    异构 SSL 硬件设置

基于 PUSH 标志的加密触发机制

基于 PSH TCP 标志的加密触发机制现在可以执行以下操作:

  • 将设置 PSH 标志的连续数据包合并到单个 SSL 记录中,或忽略 PSH 标志。
  • 执行基于计时器的加密,其中通过使用set ssl parameter -pushEncTriggerTimeout <positive_integer> 命令全局设置超时值。

使用 CLI 配置基于 PUSH 标志的加密

在命令提示符下,键入以下命令以配置基于 PUSH 标志的加密并验证配置:

set ssl vserver <vServerName> [-pushEncTrigger <pushEncTrigger>]

show ssl vserver

示例:

set ssl vserver vserver1 -pushEncTrigger always

Done

sh ssl vserver vserver1

            Advanced SSL configuration for VServer vserver1:
            DH: DISABLED
            DH Private-Key Exponent Size Limit: DISABLED    Ephemeral RSA: ENABLED                                                                             Refresh Count: 0
            Session Reuse: ENABLED          Timeout: 120 seconds
            Cipher Redirect: DISABLED
            SSLv2 Redirect: DISABLED
            ClearText Port: 0
            Client Auth: DISABLED
            SSL Redirect: DISABLED
            Non FIPS Ciphers: DISABLED
            SNI: DISABLED
            OCSP Stapling: DISABLED
            HSTS: DISABLED
            HSTS IncludeSubDomains: NO
            HSTS Max-Age: 0
            SSLv2: DISABLED  SSLv3: ENABLED  TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
            Push Encryption Trigger: Always
            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
            ECC Curve: P_256, P_384, P_224, P_521

    1)      Cipher Name: DEFAULT
            Description: Default cipher list with encryption strength >= 128bit
Done

使用 GUI 配置基于 PUSH 标志的加密

  1. 导航到 流量管理 > 负载平衡 > 虚拟服务器 并打开 SSL 虚拟服务器。
  2. SSL 参数部分的PUSH 加密触发器列表中,选择一个值。

支持 TLS1.2 签名哈希算法

Citrix ADC 设备完全符合 TLS1.2 签名哈希扩展。

在 SSL 握手中,客户端会发送受支持的签名哈希算法列表。客户端使用“signature_算法”扩展向服务器指示在 SSL 握手消息(SCE 和 CCV)中可能使用哪些签名哈希算法对。此扩展的“扩展名 _data”字段在客户端 Hello 消息中包含一个“支持的 _signature_算法”值。如果服务器支持这些签名哈希算法之一,则 SSL 握手将继续进行。如果服务器不支持任何这些算法,则连接将被删除。

同样,如果服务器请求客户端证书进行客户端身份验证,则证书请求消息将包含“支持的 _signature_算法”值。根据此签名哈希算法选择客户端证书。

注意:

Citrix ADC 设备充当客户端的服务器和后端服务器的客户端。

以前,设备在前端仅支持 RSA-SHA1 和 RSA-SHA256,后端支持 RSA-MD5、RSA-SHA1 和。RSA-SHA256 此外,VPX 设备在前端和后端支持 DSA-SHA1。

MPX/SDX/VPX 设备支持以下签名哈希组合。在 SDX 设备上,如果将 SSL 芯片分配给 VPX 实例,则应用 MPX 设备的密码支持。否则,将适用 VPX 实例的正常密码支持。

  • 在 VPX 实例上:
    • RSA-MD5
    • RSA-SHA1
    • RSA-SHA224
    • RSA-SHA256
    • RSA-SHA384
    • RSA-SHA512
    • DSA-SHA1
    • DSA-SHA224
    • DSA-SHA256
    • DSA-SHA384
    • DSA-SHA512
  • 在带有 N3 芯片的 MPX/SDX 设备上:
    • RSA-MD5
    • RSA-SHA1
    • RSA-SHA224
    • RSA-SHA256
    • RSA-SHA384
    • RSA-SHA512
    • ECDSA-SHA1
    • ECDSA-SHA224
    • ECDSA-SHA256
    • ECDSA-SHA384
    • ECDSA-SHA512
  • 在没有 N3 芯片的 MPX/SDX 设备上:
    • RSA-MD5
    • RSA-SHA1
    • RSA-SHA224
    • RSA-SHA256
    • RSA-SHA384
    • RSA-SHA512

默认情况下,启用所有签名哈希算法。但是,您只能使用以下命令启用少数签名哈希算法:

set ssl parameter -sigDigestType <sigDigestType>

Parameters

sigDigestType

Signature digest algorithms supported by the appliance. The platform determines the list of algorithms supported by default.

              On VPX: RSA-MD5 RSA-SHA1 RSA-SHA224 RSA-SHA256 RSA-SHA384 RSA-

              SHA512 DSA-SHA1 DSA-SHA224 DSA-SHA256 DSA-SHA384 DSA-SHA512

              On MPX with N3 cards: RSA-MD5 RSA-SHA1 RSA-SHA224 RSA-

              SHA256 RSA-SHA384 RSA-SHA512 ECDSA-SHA1 ECDSA-SHA224 ECDSA-

              SHA256 ECDSA-SHA384 ECDSA-SHA512

              Other MPX Platforms: RSA-MD5 RSA-SHA1 RSA-SHA224 RSA-SHA256 RSA-SHA384 RSA-

              SHA512.

    set ssl parameter -sigDigestType RSA-SHA224 RSA-SHA256 RSA-SHA384 RSA-SHA512

验证对等证书

根据 RFC 5246,对等证书必须使用客户端 Hello 扩展中包含的签名哈希算法之一进行签名。您可以使用strictSigDigestCheck 参数。根据客户端发送的签名哈希列表,如果启用strictSigDigestCheck,设备将返回由 Client Hello 扩展中提到的签名哈希算法之一签名哈希算法签名的证书。如果对等方没有正确的证书,则连接将被删除。如果禁用此参数,则不会在对等证书中检查签名哈希。

您可以在 SSL 虚拟服务器和服务上配置严格的签名摘要检查。如果在 SSL 虚拟服务器上启用此参数,则服务器发送的服务器证书必须由 Client Hello 扩展中列出的签名哈希算法之一签名。如果启用了客户端身份验证,则必须使用服务器发送的证书请求中列出的签名哈希算法之一对服务器接收的客户端证书进行签名。

如果您在 SSL 服务上启用此参数,则客户端接收的服务器证书必须由 Client Hello 扩展中列出的签名哈希算法之一签名。客户端证书必须使用证书请求消息中列出的签名哈希算法之一进行签名。

如果启用了默认配置文件,则可以使用它在 SSL 虚拟服务器、SSL 服务和 SSL 配置文件上配置严格的签名摘要检查。

使用 CLI 在 SSL 虚拟服务器、服务或配置文件上配置严格的签名摘要检查

在命令提示窗口中,键入:

set ssl vserver <vServerName> -strictSigDigestCheck ( ENABLED | DISABLED )

set ssl service <serviceName> -strictSigDigestCheck ( ENABLED | DISABLED )

set ssl profile <name>-strictSigDigestCheck ( ENABLED | DISABLED )

Parameters

strictSigDigestCheck

              Check whether peer entity certificate is signed using one of the signature-hash algorithms supported by the Citrix ADC appliance.

              Possible values: ENABLED, DISABLED

              Default: DISABLED

示例:

set ssl vserver v1 –strictSigDigestCheck Enabled
set ssl service s1 –strictSigDigestCheck Enabled
set ssl profile p1 –strictSigDigestCheck Enabled

重要:

如果在设备上配置了 DH、ECDHE 或 ECDSA 密码,则必须使用客户端列表和设备上配置的列表所通用的签名哈希之一对 SCE 消息进行签名。如果没有通用的签名哈希,则连接将被删除。