使用联机证书状态协议 (OCSP)
IBM® MQ 确定要使用的联机证书状态协议 (OCSP) 响应程序,并处理收到的响应。您可能必须执行相应步骤以使 OCSP 响应程序可访问。
平台 | 支持 |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- 在要检查的证书中使用 AuthorityInfoAccess (AIA) 证书扩展。
- 使用在认证信息对象中指定的 URL 或由客户机应用程序指定的 URL。
在认证信息对象中指定的 URL 或由客户机应用程序指定的 URL 优先于 AIA 证书扩展中的 URL。
OCSP 响应程序的 URL 可能受防火墙保护,如果是这样,请重新配置防火墙以使 OCSP 响应程序可供访问,或者设置 OCSP 代理服务器。通过在 SSL 节中使用 SSLHTTPProxyName 变量来指定代理服务器的名称。在客户机系统中,还可以通过使用环境变量 MQSSLPROXY 来指定代理服务器的名称。
如果您不关心 TLS 证书是否已撤销(可能是因为您要在测试环境中运行),那么可以在 SSL 节中将 OCSPCheckExtensions 设置为 NO。如果设置此变量,那么将忽略任何 AIA 证书扩展。此解决方案在生产环境中不大可行,因为在生产环境中您可能不希望允许用户访问已撤销证书。
- 良好
- 证书有效。
- 已撤销
- 证书已撤销。
- 未知
- 产生此结果的可能原因有以下三种:
- IBM MQ 不能访问 OCSP 响应程序。
- OCSP 响应程序已发送响应,但 IBM MQ 无法验证该响应的数字签名。
- OCSP 响应程序已发送响应,指出它没有证书的撤销数据。
缺省情况下,如果 IBM MQ 接收到 OCSP 响应未知,那么它会拒绝连接,并且发出错误消息。您可以通过设置 OCSPAuthentication 属性来更改此行为。该属性保存在 UNIX 系统的 qm.ini 文件的 SSL 节中、WebSphere® 注册表中或客户机配置文件的 SSL 节中。可以在适用的平台上使用 MQ Explorer 对其进行设置。
OCSP 结果未知
如果 IBM MQ 收到的 OCSP 结果为未知,那么其行为取决于 OCSPAuthentication 属性的设置。对于队列管理器,该属性保存在 UNIX 系统的 qm.ini 文件的 SSL 节中或 Windows 注册表中,并且可以使用 MQ Explorer 进行设置。对于客户机,该属性保留在客户机配置文件的 SSL 节中。
如果收到的结果为未知并且 OCSPAuthentication 设置为 REQUIRED(缺省值),那么 IBM MQ 将拒绝连接并且会发出类型为 AMQ9716 的错误消息。如果启用了队列管理器 SSL 事件消息,那么将生成类型为 MQRC_CHANNEL_SSL_ERROR 的 SSL 事件消息(ReasonQualifier 设置为 MQRQ_SSL_HANDSHAKE_ERROR)。
如果收到的结果为未知并且 OCSPAuthentication 设置为 OPTIONAL,那么 IBM MQ 将允许启动 SSL 通道并且不会生成警告和 SSL 事件消息。
如果收到的结果为未知并且 OCSPAuthentication 设置为 WARN,那么 SSL 通道将启动,但 IBM MQ 会在错误日志中发出类型为 AMQ9717 的警告消息。如果启用了队列管理器 SSL 事件消息,那么将生成类型为 MQRC_CHANNEL_SSL_WARNING 的 SSL 事件消息(ReasonQualifier 设置为 MQRQ_SSL_UNKNOWN_REVOCATION)。
OCSP 响应的数字签名
OCSP 响应程序可以采用以下三种方式之一对其响应进行签名。响应程序将向您通知所使用的方法。- 可以使用已发布您所检查证书的同一个 CA 证书对 OCSP 响应进行数字签名。在这种情况下,您无需设置任何其他证书;建立 SSL 连接时所执行的步骤足以验证 OCSP 响应。
- 可以使用已发布您所检查证书的同一个 CA 签署的另一个证书对 OCSP 响应进行数字签名。 在这种情况下,签名证书会与 OCSP 响应一起流动。从 OCSP 响应程序流出的证书必须将“扩展的密钥用法扩展”设置为 id-kp-OCSPSigning,这样就可以信任该证书对 OCSP 响应进行数字签名。由于 OCSP 响应与对其进行签名的证书一起流动(并且该证书是由已对 SSL 连接可信的 CA 进行签署的),因此无需任何其他证书设置。
- 可以使用与您所检查证书不直接相关的另一个证书对 OCSP 响应进行数字签名。 在这种情况下,OCSP 响应由 OCSP 响应程序自身发布的证书进行签名。您必须向执行 OCSP 检查的客户机或队列管理器的密钥库添加 OCSP 响应程序证书的副本。 请参阅 IBM MQ 联机产品文档中的 将CA 证书(或自签名证书的 CA 部分)添加至密钥存储库。在添加 CAS 证书时,缺省情况下会将其添加为可信根,这在该上下文中是必需设置。 如果未添加该证书,那么 IBM MQ 无法验证 OCSP 响应上的数字签名,并且 OCSP 检查将产生未知结果,这可能会导致 IBM MQ 关闭通道(取决于 OCSPAuthentication 的值)。