我编写了一个程序来将消息放入 MQ 。当我没有 SSL 配置时它工作正常。如果我在 QueueManager 和 Channel 中配置 SSL,总是得到 An MQException发生:完成代码 2,原因 2400 MQJE011:套接字连接尝试被拒绝。尝试使用不同的密码套件 请告知如何解决。
SSL 属性:
com.ibm.mq.MQEnvironment.sslCipherSuite = "TLS_RSA_WITH_AES_256_GCM_SHA384";
System.setProperty("javax.net.ssl.trustStore", "D:/keystore/testKS.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "12345678");
System.setProperty("javax.net.ssl.keyStore", "D:/keystore/testKS.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "12345678");
Run Code Online (Sandbox Code Playgroud)
此答案特定于 Java 代码。
Java JRE,包括 Oracle/Sun 和 IBM 启用了对加密算法的导入限制。这限制了最大密钥大小和一些算法。
尝试使用 AES 256 密码时,例如ECDHE_RSA_AES_256_CBC_SHA384或TLS_RSA_WITH_AES_256_CBC_SHA256,您需要确保 JRE 支持此密码。在大多数情况下,当需要更强的密码算法(例如 AES 256 密码)时,必须获取 JCE Unlimited Strength Jurisdiction Policy Files 并将其安装在 JDK/JRE 中。
JDK/JRE 文档中提到了这一点:对于 Oracle 1.7:
http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html
对于 IBM JRE:** 使用 AES_256 的密码套件需要安装 JCE Unlimited Strength Jurisdiction Policy Files。
这类似于 IBM MQ Explorer 中记录的问题:
请使用 MSPKI 和密码值“TLS_RSA_WITH_AES_256_CBC_SHA”更新此 JAR 文件运行
将支持所有算法的新策略 jar,您需要将 jar 更新到您的C:\java-8\jdk1_8_0\jre\lib\security
http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
归档时间: |
|
查看次数: |
19257 次 |
最近记录: |