当使用以下 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 经理 init 提出:
MQJE001: Completion Code '2', Reason '2400'
这应该意味着“JSSE 报告它不支持应用程序指定的 CipherSuite”(http://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.tro.doc/q044280_.htm)
我已将队列管理器 -> channel (属性)-> 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 配置到底出了什么问题。感谢您的任何提示。
我是一名优秀的程序员,十分优秀!