ibm-mq - 使用 WebSphere MQ 实现 2 路 SSL 认证

标签 ibm-mq

我使用 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 存储之间的不匹配。我经常看到两个问题。

  • 应用程序指定了信任库,但没有指定 keystore 。这适用于匿名(单向)SSL,但不适用于相互验证的 SSL。应用程序必须为相互身份验证指定 key 存储和信任存储。
  • 有时应用程序指定了一个信任存储文件,但私有(private)证书在 key 存储中。或者应用程序为信任库和 keystore 指定相同的文件,并且个人证书实际上位于单独的信任库文件中。

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

    关于ibm-mq - 使用 WebSphere MQ 实现 2 路 SSL 认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12857719/

    相关文章:

    java 。如何通过远程 channel 连接到远程Websphere MQ?

    vb6 - IBM MQSeries ActiveX 写入消息错误

    ibm-mq - 向 MQOutput 节点发送消息

    C# - 通过 IBM Websphere MQ 接收到的单元测试消息

    java - 我可以通过 Spring JMS 使用 ObjectMessage 发送文件吗?

    java-8 - 以下表达式应如何正确翻译为蓝图 "bean"属性表示法?

    ibm-mq - Websphere 7.5 添加用户

    go - 目前仅支持 JMSCorrelationID 上的选择器

    c++ - 如何将整数错误代码转换为人类可读的字符串?

    websphere - 如何使用MDB从队列中按顺序读取消息?