MQ SSL错误,协议被禁用或密码套件不合适

时间:2015-07-07 03:28:29

标签: spring ssl ibm-mq spring-jms jsse

我有一个使用SSL通道工作正常的MQ spring jms应用程序。但是,在应用了最近的一个Java安全补丁之后,应用程序停止了以下错误。

Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2397' ('MQRC_JSSE_ERROR').
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:209) ~[com.ibm.mqjms-7.5.0.0.jar:7.5.0.0 - p000-L120604]
    ... 45 common frames omitted
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
        at sun.security.ssl.Handshaker.activate(Handshaker.java:438) ~[na:1.6.0_34]
        at sun.security.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1414) ~[na:1.6.0_34]

我注意到新的java安全文件添加了这一行,导致与MQ的SSL连接失败。

jdk.tls.disabledAlgorithms = SSLv3的

我无法删除此行,因为这是共享环境,我可以选择使用此功能。我正在使用MQQueueConnectionFactory配置并注入到我的spring JMS组件中。

谢谢

3 个答案:

答案 0 :(得分:1)

对于必须使其工作(尽快)的反应性支持目的,请在该安全文件中注释/禁用该策略。这将允许Spring应用程序像以前一样继续。

但是你需要通过使用相同密码的TLS版本或移动到新的TLS密码来努力实现永久性修复。

答案 1 :(得分:0)

您需要在队列管理器上的服务器连接通道和客户端上设置适合TLS的匹配SipherSpec。

这应该有助于客户端:

http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.dev.doc/q113220_.htm

使用MQ Explorer进行QM方面最简单,只需查看连接工厂中指定的服务器连接通道的SSL属性。

答案 2 :(得分:0)

你不能用这个 - java.security.Security.setProperty("jdk.tls.disabledAlgorithms","")

这一变化是在JDK8中引入的。