Citrix ADC

使用 OCSP 监视证书状态

联机证书状态协议 (OCSP) 是一种 Internet 协议,用于确定客户端 SSL 证书的状态。Citrix ADC 设备支持 RFC 2560 中定义的 OCSP。OCSP 在及时信息方面比证书吊销列表 (CRL) 具有显著优势。客户证书的最新撤销状态在涉及大笔资金和高价值股票交易的交易中尤其有用。它还使用较少的系统和网络资源。OCSP 的 Citrix ADC 实现包括请求批处理和响应缓存。

OCSP 实施

当设备在 SSL 握手期间收到客户端证书时,Citrix ADC 设备上的 OCSP 验证开始。要验证证书,设备创建 OCSP 请求并将其转发给 OCSP 响应程序。为此,设备使用本地配置的 URL。事务处于挂起状态,直到设备评估来自服务器的响应并确定是允许还是拒绝事务。如果来自服务器的响应延迟超过配置的时间,并且未配置其他响应程序,则设备将允许事务或显示错误,具体取决于 OCSP 检查是分别设置为可选还是强制。

该设备支持 OCSP 请求的批处理和 OCSP 响应的缓存,以减少 OCSP 响应程序的负载并提供更快的响应。

OCSP 请求批处理

设备每次收到客户端证书时,都会向 OCSP 响应程序发送请求。为了帮助避免 OCSP 响应程序过载,设备可以在同一请求中查询多个客户端证书的状态。为了有效地工作,需要定义超时,以便在等待形成批处理时不会过度延迟单个证书的处理。

OCSP 响应缓存

缓存从 OCSP 响应程序收到的响应可以更快地响应客户端,并减少 OCSP 响应程序的负载。从 OCSP 响应程序收到客户端证书的吊销状态后,设备将响应本地缓存为预定义的时间长度。当 SSL 握手期间收到客户端证书时,设备首先检查其本地缓存是否存在此证书的条目。如果发现仍然有效的条目(在缓存超时限制内),则会对其进行评估,并接受或拒绝客户端证书。如果未找到证书,设备将向 OCSP 响应程序发送请求,并将响应存储在其本地缓存中配置的时间长度。

注意:从版本 12.1 版本 49.x,缓存超时限制现在增加到最大 43200 分钟(30 天)。此前的限制是 1440 分钟(一天)。增加的限制有助于减少 OCSP 服务器上的查找,避免任何 SSL/TLS 连接故障,以防由于网络或其他问题导致 OCSP 服务器无法访问。

OCSP 响应器配置

配置 OCSP 涉及添加 OCSP 响应程序、将 OCSP 响应程序绑定到证书颁发机构 (CA) 证书以及将证书绑定到 SSL 虚拟服务器。如果您需要将不同的证书绑定到已配置的 OCSP 响应程序,则需要先取消绑定响应程序,然后将响应程序绑定到不同的证书。

使用 CLI 添加 OCSP 响应程序

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

add ssl ocspResponder <name> -url <URL> [-cache ( ENABLED | DISABLED )[-cacheTimeout <positive_integer>]] [ -batchingDepth <positive_integer>][-batchingDelay <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>]
bind ssl vserver <vServerName>@ (-certkeyName <string> ( CA [-ocspCheck ( Mandatory | Optional )]))
show ssl ocspResponder [<name>]

示例:

add ssl ocspResponder ocsp_responder1 -url "http:// www.myCA.org:80/ocsp/" -cache ENABLED -cacheTimeout 30 -batchingDepth 8 -batchingDelay 100 -resptimeout 100 -responderCert responder_cert -producedAtTimeSkew 300 -signingCert sign_cert  -insertClientCert YES
bind ssl certKey ca_cert -ocspResponder ocsp_responder1 -priority 1
bind ssl vserver vs1 -certkeyName ca_cert -CA -ocspCheck Mandatory
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 ca_cert

    Name: ca_cert     Status: Valid,   Days to expiration:8907
    Version: 3
    …

    1)  VServer name: vs1      CA Certificate
    1)  OCSP Responder name: ocsp_responder1     Priority: 1
Done
sh ssl vs vs1

    Advanced SSL configuration for VServer vs1:
    DH: DISABLED
    …

    1) CertKey Name: ca_cert CA Certificate OCSPCheck: Mandatory
    1) Cipher Name: DEFAULT
      Description: Predefined Cipher Alias
    Done

使用 CLI 修改 OCSP 响应程序

您无法修改响应程序名称。所有其他参数可以使用 set ssl ocspResponder 命令更改。

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

set ssl ocspResponder <name> [-url <URL>] [-cache ( ENABLED | DISABLED)] [-cacheTimeout <positive_integer>] [-batchingDepth <positive_integer>] [-batchingDelay <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

使用 OCSP 监视证书状态