[AIX、Linux 和 Windows]

使用联机证书状态协议 (OCSP)

IBM® MQ 确定要使用的联机证书状态协议 (OCSP) 响应程序,并处理接收到的响应。 您可能必须执行相应步骤以使 OCSP 响应程序可访问。

认证信息对象包含检查是否已撤销 TLS 证书时所使用的认证信息。
注: 此信息仅适用于 IBM MQ for AIX®, Linux®, and Windows 系统。 下表显示了针对不同平台的 IBM MQ TLS 认证信息支持:
表 1. IBM MQ TLS 如何支持不同平台上的认证信息
平台 支持
[AIX、Linux 和 Windows]IBM MQ for AIX, Linux, and Windows IBM MQ TLS 支持使用 OCSP 或使用 LDAP 服务器上的 CRL 和 ARL (以 OCSP 作为首选方法) 来检查是否已撤销证书。 IBM MQ classes for Java 无法在客户机通道定义表文件中使用 OCSP 信息。 但是,您可以配置 OCSP ,如 已撤销的证书和 OCSP中所述。
[z/OS]IBM MQ for z/OS® IBM MQ TLS 支持仅在 LDAP 服务器上使用 CRL 和 ARL 检查已撤销的证书。 IBM MQ for z/OS 系统无法使用 OCSP。
[IBM i]IBM MQ for IBM i IBM MQ TLS 支持仅在 LDAP 服务器上使用 CRL 和 ARL 检查已撤销的证书。 IBM MQ for IBM i 系统无法使用 OCSP。
要使用 OCSP 检查数字证书的撤销状态, IBM MQ 将通过以下两种方式之一确定要联系的 OCSP 响应程序:
  • 在要检查的证书中使用 AuthorityInfoAccess (AIA) 证书扩展。
  • 使用在认证信息对象中指定的 URL 或由客户机应用程序指定的 URL。

在认证信息对象中指定的 URL 或由客户机应用程序指定的 URL 优先于 AIA 证书扩展中的 URL。

OCSP 响应程序的 URL 可能受防火墙保护,如果是这样,请重新配置防火墙以使 OCSP 响应程序可供访问,或者设置 OCSP 代理服务器。 通过在 SSL 节中使用 SSLHTTPProxyName 变量来指定代理服务器的名称。 在客户机系统中,还可以通过使用环境变量 MQSSLPROXY 来指定代理服务器的名称。

如果您不关心 TLS 证书是否已撤销(可能是因为您要在测试环境中运行),那么可以在 SSL 节中将 OCSPCheckExtensions 设置为 NO。 如果设置此变量,那么将忽略任何 AIA 证书扩展。 此解决方案在生产环境中不大可行,因为在生产环境中您可能不希望允许用户访问已撤销证书。

用于访问 OCSP 响应程序的调用可能返回以下三种结果之一:
良好
证书有效。
已撤销
证书已撤销。
未知
产生此结果的可能原因有以下三种:
  • IBM MQ 无法访问 OCSP 响应程序。
  • OCSP 响应程序已发送响应,但 IBM MQ 无法验证响应的数字签名。
  • OCSP 响应程序已发送响应,指出它没有证书的撤销数据。

缺省情况下,如果 IBM MQ 接收到 OCSP 响应 未知,那么它将拒绝连接,并发出错误消息。 您可以通过设置 OCSPAuthentication 属性来更改此行为。 它保存在 AIX and Linux 系统的 qm.ini 文件的 SSL 节中,WebSphere® 注册表或客户机配置文件的 SSL 节中。 可以在适用的平台上使用 IBM MQ Explorer 进行设置。

OCSP 结果未知

如果 IBM MQ 接收到 OCSP 结果 未知,那么其行为取决于 OCSPAuthentication 属性的设置。 对于队列管理器,此属性保存在 AIX and Linux 系统的 qm.ini 文件的 SSL 节或 Windows 注册表中,并且可以使用 IBM 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 响应程序证书的副本。 请参阅 将 CA 证书 (或自签名证书的 CA 部分) 添加到密钥存储库 在添加 CA 证书时,缺省情况下会将其添加为可信根,这在该上下文中是必需设置。 如果未添加此证书,那么 IBM MQ 无法验证 OCSP 响应上的数字签名,并且 OCSP 检查会产生 未知 结果,这可能会导致 IBM MQ 关闭通道,具体取决于 OCSPAuthentication 的值。