【发布时间】:2016-10-07 18:22:14
【问题描述】:
使用以下 sslCipherSuite 创建 MQQueueManager 对象时:
MQEnvironment.sslCipherSuite = "TLS_RSA_WITH_AES_128_CBC_SHA";
MQEnvironment.hostname = host;
MQEnvironment.channel = channel;
MQEnvironment.port = port;
iMQQueueManager = new MQQueueManager(queueMgr);
it manager init 提出:
MQJE001:完成代码“2”,原因“2400”
这应该意味着“JSSE 报告它不支持应用程序指定的 CipherSuite”(http://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.tro.doc/q044280_.htm)
我已将队列管理器 -> 通道(属性)-> SSL -> CipherSpec 配置为:TLS_RSA_WITH_AES_128_CBC_SHA(TLS 1.0,安全散列算法,128 位 AES 加密)。
使用的平台是:
JAVA 7 (1.7.0_75-b13)
MQ 7.1 client libs (7.1.0.6-k710-006-141112)
MQ 8.0 server (8.0.0.5)
这里是堆栈详细信息:
Exception in thread "main" com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2400'.
at com.ibm.mq.MQManagedConnectionJ11.constructMQCD(MQManagedConnectionJ11.java:1434)
at com.ibm.mq.MQManagedConnectionJ11.constructCNO(MQManagedConnectionJ11.java:1537)
at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:233)
at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:588)
at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:630)
at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:107)
at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:205)
at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:911)
at com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:799)
at com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:750)
at com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:157)
at com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:681)
我猜问题出在 MQ 配置方面,因为我的 jre
SSLContext.getInstance("TLS")
.init(null, trustAllCerts, new SecureRandom())
.getSupportedSSLParameters()
.getCipherSuites()
返回“TLS_RSA_WITH_AES_128_CBC_SHA”作为 CipherSuites 之一。但我不确定 QMgr 配置到底出了什么问题。感谢您的任何提示。
【问题讨论】:
-
抱歉使用 TLS_RSA_WITH_AES_128_CBC_SHA 作为 MQEnvironment.sslCipherSuite 不正确,即使密码在 getSupportedSSLParameters() .getCipherSuites() 中,客户端引发 [MQJE001:完成代码 '2',原因 '2400']对于作为 sslCipherSuite 传递的任何其他无意义字符串。