我使用 Java 客户端,使用 JMS/JNDI
.使用单向 SSL 身份验证时连接正常 SSLCAUTH(OPTIONAL)
.我做的第一步是导出客户端的公共(public)证书:
keytool -export -keystore keystore -storepass storepass -alias CLIENT -file client.cer
然后我将此证书添加到 MQ key 存储库。
gsk7cmd -cert -add -db keydb.kdb -pw password -label ibmwebspheremqclient -file client.cer -format binary
我终于切换到
SSLCAUTH(REQUIRED)
模式。我收到以下错误日志。消息很清楚,它找不到我的客户端证书。我读到我的客户证书应该有一个标签
ibmwebspheremq<client_user_id>
.因为我是通过 Java 连接的,所以这个用户 ID 是什么?AMQ9637: Channel is lacking a certificate.
最佳答案
根据技术说明 Specifying the userid in the SSL certificate label for an MQ client Java 和 JMS 客户端没有根据标签找到他们的证书。
问题通常是信任存储和 key 存储之间的不匹配。我经常看到两个问题。
这两种方法都能解决问题吗?如果没有,请使用
keytool -cert -list
更新问题。对于 keystore 和信任库以及设置 keystore /信任库的命令行或代码部分。
关于ibm-mq - 使用 WebSphere MQ 实现 2 路 SSL 认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12857719/