在 MQ 密钥库中交换 SSL 证书

exchanging SSL certificates in MQ keystores

我正在尝试在两个 MQ 服务器之间建立 SSL 连接。在这两个文件中,我都使用自签名证书,我为 QM_A(发送方)创建了一个证书,为 QM_V(接收方)创建了另一个证书。由于连接将是 'one-way message',我不确定是否必须从 QM_A 中提取 public 密钥并将其导入到 QM_V(接收方)的密钥库中?

现在在 QM_V 的错误日志中,我发现错误消息:

AMQ9637: Channel is lacking a certificate.

通常您会希望两个队列管理器都有证书并验证和匹配彼此证书的 DN。


TLS 服务器端 (RCVR) 必须有证书,而 TLS 客户端 (SDR) 根据 RCVR 的 SSLCAUTH 设置可选地需要证书。

在所有情况下,如果 SDR 队列管理器(TLS 客户端)拥有证书,则 RCVR 队列管理器(TLS 服务器)将验证 SDR 证书是否由受信任的证书签名,未过期并可选择检查它是否未被撤销查询 CRL 或 OCSP 服务器。 RCVR 队列管理器还将检查 SDR 证书的 DN 是否与指定的任何 SSLPEER 值匹配[以及在 MQ v8.0 或更高版本中证书颁发者是否与指定的任何 SSLCERTI 值匹配]。

这是您希望防止未经授权连接到 RCVR 的行为。


SDR 队列管理器还将验证 RCVR 队列管理器证书是否由受信任的证书签名,是否过期,并可选择通过查询 CRL 或 OCSP 服务器来检查它是否被撤销。您还可以在 SDR 端配置单个 SSLPEER 值,该值必须与 RCVR 队列管理器的证书相匹配。这将有助于防止 MITM 攻击。