使用 OCSP 监视证书状态
联机证书状态协议 (OCSP) 是一种 Internet 协议,用于确定客户端 SSL 证书的状态。NetScaler 设备支持 RFC 2560 中定义的 OCSP。与证书吊销列表 (CRL) 相比,OCSP 在及时信息方面具有显著优势。客户证书的最新吊销状态在涉及大量资金和高值股票交易的交易中特别有用。它还使用更少的系统和网络资源。NetScaler 的 OCSP 实现包括请求批处理和响应缓存。
OCSP 的实现
当设备在 SSL 握手期间收到客户端证书时,NetScaler 设备上的 OCSP 验证即开始。为了验证证书,设备创建 OCSP 请求并将其转发给 OCSP 响应者。为此,设备使用本地配置的 URL。在设备评估来自服务器的响应并决定是允许还是拒绝事务之前,事务处于暂停状态。如果来自服务器的响应延迟超过配置的时间且未配置其他响应程序,则设备将允许事务处理或显示错误,具体取决于 OCSP 检查分别设置为可选或必需。
该设备支持批处理 OCSP 请求和缓存 OCSP 响应,以减少 OCSP 响应程序的负载并提供更快的响应。
OCSP 请求批处理
每次设备收到客户端证书时,它都会向 OCSP 响应者发送请求。为帮助避免 OCSP 响应程序超载,设备可以在同一个请求中查询多个客户端证书的状态。为了使此功能高效运行,需要定义超时时间,以便在等待形成批处理时不会过度延迟单个证书的处理。
OCSP 响应缓存
缓存从 OCSP 响应程序收到的响应可以更快地响应客户端,并减少 OCSP 响应程序的负载。收到来自 OCSP 响应方的客户端证书吊销状态后,设备将在预定义的时间长度内在本地缓存响应。在 SSL 握手期间收到客户端证书时,设备会首先检查其本地缓存中是否有该证书的条目。如果找到的条目仍然有效(在缓存超时限制内),则对其进行评估并接受或拒绝客户端证书。如果找不到证书,设备会向 OCSP 响应者发送请求,并在配置的时间长度内将响应存储在其本地缓存中。
注意:从 12.1 版 build 49.x 开始,缓存超时限制现已增加到最大 43200 分钟(30 天)。之前的限制是 1440 分钟(一天)。增加的限制有助于减少 OCSP 服务器上的查找次数,避免因网络或其他问题而无法访问 OCSP 服务器时出现任何 SSL/TLS 连接故障。
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 )]
<!--NeedCopy-->
bind ssl certKey [<certkeyName>] [-ocspResponder <string>] [-priority <positive_integer>]
<!--NeedCopy-->
bind ssl vserver <vServerName>@ (-certkeyName <string> ( CA [-ocspCheck ( Mandatory | Optional )]))
<!--NeedCopy-->
show ssl ocspResponder [<name>]
<!--NeedCopy-->
示例:
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
<!--NeedCopy-->
bind ssl certKey ca_cert -ocspResponder ocsp_responder1 -priority 1
<!--NeedCopy-->
bind ssl vserver vs1 -certkeyName ca_cert -CA -ocspCheck Mandatory
<!--NeedCopy-->
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
<!--NeedCopy-->
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
<!--NeedCopy-->
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
<!--NeedCopy-->
使用 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>]
<!--NeedCopy-->
使用 GUI 配置 OCSP 响应程序
- 导航到 流量管理 > SSL > OCSP 响应程序,然后配置 OCSP 响应程序。
- 导航到 流量管理 > SSL > 证书,选择证书,然后在 操作 列表中选择 OCSP 绑定。绑定 OCSP 响应程序。
- 导航到 流量管理 > 负载平衡 > 虚拟服务器,打开虚拟服务器,然后单击证书部分以绑定 CA 证书。
- (可选) 选择必选 OCSP。