我使用JMS/JNDI
使用Java客户端。使用单向SSL身份验证SSLCAUTH(OPTIONAL)
时,连接正常。我做的第一步是导出客户的公共证书:
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(REQUIRED)
模式。
我收到以下错误日志。消息很清楚,它找不到我的客户端证书。我读到我的客户端证书应该有一个标签ibmwebspheremq<client_user_id>
。这个用户ID是什么,因为我通过Java连接?
AMQ9637: Channel is lacking a certificate.
答案 0 :(得分:2)
根据Technote Specifying the userid in the SSL certificate label for an MQ client,Java和JMS客户端根据标签找不到证书。
通常问题是信任存储和密钥存储区之间的不匹配。我经常看到两个问题。
这些都解决了这个问题吗?如果没有,请使用keytool -cert -list
为密钥库和信任库以及设置密钥库/信任库的命令行或代码部分更新问题。