为什么我需要为IBM MQ的SSL连接提供密钥库和信任库

问题描述 投票:0回答:1

我创建了一个使用SSL连接到IBM MQ的轻量级应用程序。

如果我同时设置javax.net.ssl.trustStorejavax.net.ssl.keyStore,一切都按预期工作。

密钥库(jks)包含两个条目:

  1. TrustedCertEntry
  2. PrivateKeyEntry

我觉得,鉴于我是这个连接的客户端,而MQ是服务器,只应该使用trustStore,但事实并非如此,因为如果我只设置了trustStore,应用程序就无法运行。

任何人都可以解释为什么两者都需要?

java ssl keystore truststore
1个回答
1
投票

根据SSL configuration of the Websphere MQ Java/JMS client指南,请点2.创建keyStore您最有可能使用证书进行客户端身份验证。此身份验证设置需要keyStore:

仅当您希望在与队列管理器建立连接时进行客户端身份验证时,才能完成此部分。如果尚未在通道上指定客户端身份验证,则无需完成此部分。

keyStore基本上与trustStore相同,只是它保存客户端的个人证书,而JSSE需要密码才能访问。实际上,您可以将您的个人证书添加到之前创建的trustStore,它将同时充当trustStore和keyStore,但现在需要将之前不需要的密码传递给JSSE,以便它访问您的个人证书。

您可以通过运行以下命令在服务器上验证这一点,如 Using self-signed certificates for mutual authentication of a client and queue manager指南所示:

DISPLAY CHSTATUS(<your channel name>) SSLPEER SSLCERTI
© www.soinside.com 2019 - 2024. All rights reserved.