【发布时间】:2017-11-08 09:08:57
【问题描述】:
我使用的是 Spring boot 1.2.2 和 JDK1.8.0.40,我已将 SSL 密码套件指定为 SSL_RSA_WITH_3DES_EDE_CBC_SHA 并将 cer 文件导入密钥库。
当我运行我的项目时,我将 jvm 参数设置如下:
-Djavax.net.debug=all -Djavax.net.ssl.keyStore=/java_home/jre/lib/security/cacerts -Djava.net.keyStorePassword=changeit
但我总是得到
handing exception:javax.net.ssl.SSLHandshakeException: No appropriate protocol(protocol is disabled or cipher suites are inappropriate)
SEND TLSv1.2 ALERT: fatal, description = handshake_failure
WRITE: TLSv1.2 Alert, length = 2
[Raw write]: length = 7
0000: 15 03 03 00 02 02 28 ......(
called closeSocket()
com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: Failed to connect to queue manager 'XXXX' with connection mode 'Client' and host name 'xxx.xxx.com(xxxxx)'.
确实我已经做了几个操作来解决这个问题,例如:
- 替换 jce jar 以无限加密
- 将cer文件导入jks
- 在 jvm 参数中指定 jks 路径
- 使用匹配的 SSL 密码套件
- 使用 SSL 通道
但是现在,我还是握手失败了,错误日志和上面一样。
或者我需要从我的机器生成 cer 并上传到服务器吗?可以给点建议吗?
【问题讨论】: