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 清除缓存状态
- 在 GUI 中,导航到 流量管理 > SSL > 证书 > CA 证书 。
- 在详细信息窗格中,选择一个证书。
- 在“选择操 作”列表中,选择“清除”。当系统提示确认时,单击 是。
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 装订
- 导航到 流量管理 > SSL > 虚拟服务器 。
- 打开虚拟服务器,然后在 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。 |
请求处理 示例:
- 添加虚拟服务器 (VIP1)。
- 添加颁发者证书 (CA1) 并将其绑定到 VIP1。
- 添加三个证书 S1、S2 和 S3。默认情况下,将分别创建内部响应程序 resp1、resp2 和 resp3。
- 将 S3 绑定到 VIP1。
- 一个请求来到 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
- 导航到 流量管理 > SSL > OCSP 响应程序 ,并配置 OCSP 响应程序。
- 导航到 流量管理 > SSL > 证 书,选择证书,然后在 操 作列表中选择 OCSP 绑定 。绑定 OCSP 响应程序。
- 导航到“流量管理”>“负载平衡”>“虚拟服务器”,打开虚拟服务器,然后单击“证书”部分以绑定 CA 证书。
- 或者,选择 OCSP 强制。
注意 :
add ssl ocspResponder
和中的插入客户端证书参数不再有效。set ssl ocspResponder
也就是说,在配置过程中忽略参数。