Ibm mq 使用WebSphere MQ实现双向SSL身份验证

Ibm mq 使用WebSphere MQ实现双向SSL身份验证,ibm-mq,Ibm Mq,我使用使用JMS/JNDI的Java客户机。使用单向SSL身份验证时,连接正在工作SSLCAUTH(可选)。我所做的第一步是导出客户端的公共证书: keytool -export -keystore keystore -storepass storepass -alias CLIENT -file client.cer 然后,我将此证书添加到MQ密钥存储库中 gsk7cmd -cert -add -db keydb.kdb -pw password -label ibmwebspheremqc

我使用使用
JMS/JNDI
的Java客户机。使用单向SSL身份验证时,连接正在工作
SSLCAUTH(可选)
。我所做的第一步是导出客户端的公共证书:

keytool -export -keystore keystore -storepass storepass -alias CLIENT -file client.cer
然后,我将此证书添加到MQ密钥存储库中

gsk7cmd -cert -add -db keydb.kdb -pw password -label ibmwebspheremqclient -file client.cer -format binary
最后我切换到
SSLCAUTH(必选)
模式

我得到以下错误日志。消息很清楚,它找不到我的客户端证书。我读到我的客户端证书应该有一个标签
ibmwebspheremq
。这个用户id是什么,因为我是通过Java连接的

AMQ9637: Channel is lacking a certificate.
根据技术说明,Java和JMS客户机找不到基于标签的证书

问题通常是信任存储和密钥存储之间不匹配。我经常看到两个问题

  • 应用程序指定一个信任存储,但不是密钥存储。这对于匿名(单向)SSL非常有效,但对于相互身份验证的SSL则不行。应用程序必须为相互身份验证指定密钥存储和信任存储
  • 有时应用程序指定了一个信任存储文件,但私人证书位于密钥存储中。或者应用程序为信任存储和密钥存储指定了相同的文件,并且个人证书实际上位于单独的信任存储文件中

  • 这两种方法都能解决问题吗?如果没有,请使用
    keytool-cert-list
    更新密钥库和信任库以及设置密钥库/信任库的命令行或代码部分的问题。

    请查看此链接以获取T的答案。Rob:我确实指定了信任库,但没有指定密钥库。指定密钥库可以解决此问题。再次感谢您的时间和努力。很高兴这对您有所帮助。回顾一下,我发现我在第一个项目符号中反转了keystore/truststore。你显然明白我的意思,但我已经为下一个人纠正了。