ssl - 需要身份验证时如何使用启用了 ssl 的服务器连接 channel 连接到队列管理器

标签 ssl ibm-mq jsse

我正在尝试编写一个连接到启用了 SSL 的服务器连接 channel 的 Java 应用程序。

到目前为止,我已经通过将身份验证设置为“可选”成功连接到 channel 。但是,当我将其设置为“必需”时,连接失败。

这是我做的:

  1. 为队列管理器创建 key 数据库,为 java 客户端用户创建 keystore 。
  2. 为队列管理器和客户端用户创建 key /自签名证书,名称以 ibmwebspheremq 为前缀。
  3. 为队列管理器和客户端导出、交换和导入证书。 (当被问及我是否信任队列管理器证书时,我确实回答了"is")。
  4. 信任库和 keystore 的位置和密码设置为指向客户端的同一个 keystore ,其中包含原始创建的客户端用户 key 和导入的队列管理器 key 。

在其他设置相同的情况下,如果我切换回“可选”身份验证,则连接正常。

我认为我对这个 ssl 身份验证有一些错误的理解,但无法弄清楚是什么。

有人可以帮助我吗?

最佳答案

我用头撞那堵墙几个星期了。 IBM L2 Support 最终提示了我。我的问题是除非您指定 RSA,否则 keytool 将使用 DSA 算法。这导致键的长度为 1022 而不是 1024,这是 WMQ 不喜欢的。解决方法是在生成证书时指定 -sigalg RSA,一切正常。

我已经要求 IBM WMQ 团队和 WMQ FTE 团队将此添加到他们的信息中心文档中。

关于ssl - 需要身份验证时如何使用启用了 ssl 的服务器连接 channel 连接到队列管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1821349/

相关文章:

azure - 获取虚拟 IP - Azure 应用服务环境

ibm-mq - 如何从 WMQ 解决此 channel 问题?

java - QueueManager 未连接,出现异常 : MQJE001:

java - 使用 STARTTLS : recv failed 将套接字升级到 SSLSocket

django - 如何使用 Cloudflare 的免费 SSL 在我的 Apache+mod_wsgi 堆栈上的 Django 应用程序上强制使用 https?

ssl - 使用 Kohana 验证 SSL 证书失败

ibm-mq - 如何在UNIX下查看MQ的环境变量

java - 有人可以指出有关 javax.net.debug 的确切细节吗?

java - JDK/JRE 版本是否单独确定 SSLSocket.getSupportedProtocols() 的结果?

tomcat - 禁用客户端证书提示