I am using Spring boot 1.2.2 and JDK1.8.0.40, I have specified the SSL cipher suit as SSL_RSA_WITH_3DES_EDE_CBC_SHA and also import cer file to keystore.
When I run my project, I set the jvm arguments as following:
-Djavax.net.debug=all -Djavax.net.ssl.keyStore=/java_home/jre/lib/security/cacerts -Djava.net.keyStorePassword=changeit
But I always get
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)'.
Indeed I have do several operations to fix the issue, such as:
- Replace jce jars to unlimit encrypt
- Import cer file to jks
- specified jks path in jvm arguments
- Using matched SSL Cipher Suite
- Using SSL channel
But now, I still failed on handshake and the error logs are same as above.
Or do I need generate the cer from my machine and upload to the server? Could you kindly give some advice?