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

示例

clear ssl certKey s1 -ocspstaplingCache

使用 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]

示例:

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

通过使用 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) 中。 添加命令不保存在配置中;只保存设置命令。
如果将三个 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 证书)。
  • 服务器证书的证书密钥对。此证书必须包含 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>]

参数:

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

使用 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>]

通过使用 GUI 配置 OCSP

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

注意:

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