Citrix ADC

OCSP 装订

CRL 和 OCSP 的 Citrix ADC 实现仅报告客户端证书的吊销状态。要检查 SSL 握手期间收到的服务器证书的吊销状态,客户端必须向证书颁发机构发送请求。

对于流量大的网站,许多客户端会收到相同的服务器证书。如果每个客户端都发送了关于服务器证书吊销状态的查询,则证书颁发机构将会淹没 OCSP 请求以检查证书的有效性。

OCSP 装订解决方案

为了避免不必要的拥堵,Citrix ADC 设备现在支持 OCSP 装订。也就是说,在从 OCSP 响应程序验证证书状态后,设备现在可以在 SSL 握手时将服务器证书的吊销状态发送给客户端。作为 SSL 握手的一部分,服务器证书的吊销状态将“固定”到设备向客户端发送的响应中。要使用 OCSP 装订功能,必须在 SSL 虚拟服务器上启用该功能,并在设备上添加 OCSP 响应程序。

注意

  • Citrix ADC 设备支持 RFC 6066 中定义的 OCSP 装订。

  • 仅在 Citrix ADC 设备的前端支持 OCSP 装订。

重要:

Citrix ADC 对 OCSP 装订的支持仅限于使用 TLS 协议版本 1.0 或更高版本的握手。

服务器证书的 OCSP 响应缓存

在 SSL 握手期间,当客户端请求服务器证书的吊销状态时,设备首先检查其本地缓存是否存在此证书的条目。如果找到有效条目,则会对其进行评估,并将服务器证书及其状态呈现给客户端。如果未找到吊销状态条目,设备将向 OCSP 响应程序发送服务器证书的吊销状态请求。如果收到响应,则会将证书和吊销状态发送到客户端。如果 OCSP 响应中存在下一个更新字段,则会按照配置的时间长度(在超时字段中指定的值)缓存响应。

注意:从版本 12.1 版本 49.x 中,您甚至可以在超时到期之前从 OCSP 响应程序清除服务器证书的缓存响应。之前,在配置的超时结束之前,无法放弃证书密钥对中的缓存状态。

要使用 CLI 清除缓存状态,请在命令提示符处键入:

clear ssl certKey <certkey name> -ocspstaplingCache
<!--NeedCopy-->

例如

clear ssl certKey s1 -ocspstaplingCache
<!--NeedCopy-->

使用 GUI 清除缓存状态

  1. 在 GUI 中,导航到 流量管理 > SSL > 证书 > CA 证书
  2. 在详细信息窗格中,选择一个证书。
  3. 在“选择操 作”列表中,选择“清除”。当系统提示确认时,单击

OCSP 装订配置

配置 OCSP 装订涉及启用该功能和配置 OCSP。要配置 OCSP,必须添加 OCSP 响应程序,将 OCSP 响应程序绑定到 CA 证书,并将证书绑定到 SSL 虚拟服务器。

注意 : 支持仅具有基于 HTTP 的 URL 的 OCSP 响应程序。

使用 CLI 启用 OCSP 装订

在命令提示符下,键入:

set ssl vserver <name> -ocspstapling [ENABLED | DISABLED]
<!--NeedCopy-->

示例:

set ssl vserver vip1 -ocspStapling ENABLED
Done

sh ssl vserver vip1

     Advanced SSL configuration for VServer vip1:
     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: ENABLED
     OCSP Stapling: ENABLED
     SSLv2: DISABLED SSLv3: DISABLED TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED
     Push Encryption Trigger: Always
     Send Close-Notify: YES

     ECC Curve: P_256, P_384, P_224, P_521

    1) CertKey Name: server_certificate1 Server Certificate

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

注意: 如果启用了默认(增强型)配置文件,请使用 set ssl profile <profile name> -ocspStapling [ENABLED | DISABLED] 命令启用或禁用 OCSP。

通过使用 GUI 启用 OCSP 装订

  1. 导航到 流量管理 > SSL > 虚拟服务器
  2. 打开虚拟服务器,然后在 SSL 参数中选择 OCSP 装订

OCSP 配置

动态或手动添加 OCSP 响应程序以发送 OCSP 装订请求。当您基于服务器证书中的 OCSP URL 添加服务器证书及其颁发者证书时,会动态添加内部响应程序。从 CLI 或 GUI 添加手动 OCSP 响应程序。要发送服务器证书的 OCSP 请求,Citrix ADC 设备会根据将 OCSP 响应程序绑定到颁发者证书时为其分配的优先级选择 OCSP 响应程序。如果响应程序未能发送 OCSP 装订请求,则会选择具有下一个最高优先级的响应程序来发送请求。例如,如果只手动配置了一个响应程序并且它失败,并且存在动态绑定响应程序,则会选择该响应程序来发送 OCSP 请求。

如果 OCSP URL 不是 HTTP,则不会创建内部 OCSP 响应程序。

注意

手动添加的 OCSP 响应程序优先于动态添加的响应程序。

手动创建的 OCSP 响应程序和内部创建的 OCSP 响应程序之间的区别

   
手动创建的 OCSP 响应程序 内部(动态)创建的 OCSP 响应程序
手动创建并显式绑定到具有优先级的颁发者证书。 默认情况下创建和绑定,同时添加服务器证书及其颁发者证书(CA 证书)。名称以“ns_internal_”开头。
优先级介于 1 到 127 之间是为配置的响应程序保留的。 优先级从 128 起自动分配。
URL 和批处理深度可以更改。 URL 和批处理深度无法更改。
直接删除。 仅当您删除服务器证书或 CA 证书时才删除。
可以绑定到任何 CA 证书。 默认情况下绑定到一个 CA 证书。不能绑定到任何其他 CA 证书。
保存在配置 (ns.conf) 中。 添加命令不会保存在配置中。只保存 set 命令。
如果将三个 OCSP 响应程序绑定到分别具有优先级 1、2 和 3 的同一颁发者证书,然后取消绑定优先级 2,则其他优先级不受影响。 三个 OCSP 响应程序自动绑定到分别具有优先级 128、129 和 130 的颁发者证书。如果删除用于创建具有优先级 129 绑定的响应程序的服务器证书,则该响应程序将被删除。此外,下一个响应程序的优先级(优先级 130)会自动更改为 129。

请求处理 示例

  1. 添加虚拟服务器 (VIP1)。
  2. 添加颁发者证书 (CA1) 并将其绑定到 VIP1。
  3. 添加三个证书 S1、S2 和 S3。默认情况下,将分别创建内部响应程序 resp1、resp2 和 resp3。
  4. 将 S3 绑定到 VIP1。
  5. 一个请求来到 VIP1。响应程序 resp3 处于选中状态。

要动态创建内部 OCSP 响应程序,设备需要以下内容:

  • 服务器证书颁发者的证书(通常为 CA 证书)。
  • 服务器证书的证书密钥对。此证书必须包含证书颁发机构提供的 OCSP URL。URL 用作动态添加的内部响应程序的名称。

内部 OCSP 响应程序具有与手动配置响应程序相同的默认值。

注意 : 默认情况下,在内部响应程序上禁用缓存。使用命 set ssl ocspResponder 令启用缓存。

使用 CLI 配置 OCSP

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

add ssl certKey <certkeyName> (-cert <string> [-password]) [-key <string> | -fipsKey <string> | -hsmKey <string>] [-inform <inform>] [-expiryMonitor ( ENABLED | DISABLED ) [-notificationPeriod <positive_integer>]] [-bundle ( YES | NO )]

add ssl ocspResponder <name> -url <URL> [-cache ( ENABLED | DISABLED )[-cacheTimeout <positive_integer>]] [-resptimeout <positive_integer>] [-responderCert <string> | -trustResponder] [-producedAtTimeSkew <positive_integer>][-signingCert <string>][-useNonce ( YES | NO )][ -insertClientCert ( YES | NO )]

bind ssl certKey [<certkeyName>] [-ocspResponder <string>] [-priority <positive_integer>]

show ssl ocspResponder [<name>]
<!--NeedCopy-->

参数:

httpMethod:

用于发送 OCSP 请求的 HTTP 方法。对于长度小于 255 字节的请求,您可以为 OCSP 服务器的查询配置 HTTP GET 方法。如果指定 GET 方法,但长度大于 255 字节,则设备将使用默认方法 (POST)。

可能的值:GET,POST

默认值:POST

ocspUrlResolveTimeout:

等待 OCSP URL 解析的时间(以毫秒为单位)。在这段时间过后,将选择具有下一个更高优先级的响应程序。如果所有响应程序都失败,则会显示错误消息或断开连接,具体取决于虚拟服务器上的设置。

最小值:100

最大值:2000

示例:

add ssl certkey root_ca1 –cert root_cacert.pem
add ssl ocspResponder ocsp_responder1 -url "http:// www.myCA.org:80/ocsp/" -cache ENABLED -cacheTimeout 30  -resptimeout 100 -responderCert responder_cert -producedAtTimeSkew 300 -signingCert sign_cert  -insertClientCert YES
bind ssl certKey root_ca1 -ocspResponder ocsp_responder1 -priority 1
sh ocspResponder ocsp_responder1
    1)Name: ocsp_responder1
    URL: http://www.myCA.org:80/ocsp/, IP: 192.128.22.22
    Caching: Enabled        Timeout: 30 minutes
    Batching: 8 Timeout: 100 mS
    HTTP Request Timeout: 100mS
    Request Signing Certificate: sign_cert
    Response Verification: Full, Certificate: responder_cert
    ProducedAt Time Skew: 300 s
    Nonce Extension: Enabled
     Client Cert Insertion: Enabled
    Done

show certkey root_ca1
    Name: root_ca1     Status: Valid,   Days to expiration:8907
    Version: 3
    …
    1)  OCSP Responder name: ocsp_responder1     Priority: 1
    Done
<!--NeedCopy-->

使用 CLI 修改 OCSP

您不能修改 OCSP 响应程序的名称,但可以使用 set ssl ocspResponder 命令更改任何其他参数。

在命令提示窗口中,键入以下命令来设置参数并验证配置:

set ssl ocspResponder <name> [-url <URL>] [-cache ( ENABLED | DISABLED)] [-cacheTimeout <positive_integer>]  [-resptimeout <positive_integer>] [ -responderCert <string> | -trustResponder][-producedAtTimeSkew <positive_integer>][-signingCert <string>] [-useNonce ( YES | NO )]

unbind ssl certKey [<certkeyName>] [-ocspResponder <string>]

bind ssl certKey [<certkeyName>] [-ocspResponder <string>] [-priority <positive_integer>]

show ssl ocspResponder [<name>]
<!--NeedCopy-->

通过使用 GUI 配置 OCSP

  1. 导航到 流量管理 > SSL > OCSP 响应程序 ,并配置 OCSP 响应程序。
  2. 导航到 流量管理 > SSL > 书,选择证书,然后在 作列表中选择 OCSP 绑定绑定 OCSP 响应程序
  3. 导航到“流量管理”>“负载平衡”>“虚拟服务器”,打开虚拟服务器,然后单击“证书”部分以绑定 CA 证书。
  4. 或者,选择 OCSP 强制

注意add ssl ocspResponder和中的插入客户端证书参数不再有效。set ssl ocspResponder 也就是说,在配置过程中忽略参数。

OCSP 装订