Ich verwende Spring boot 1.2.2 und JDK1.8.0.40, ich habe die SSL-Verschlüsselungsanforderung als SSL_RSA_WITH_3DES_EDE_CBC_SHA angegeben und auch cer-Datei in Keystore importieren.JMS-Verbindungs-Handshake schlägt fehl für SSLCipherSuite SSL_RSA_WITH_3DES_EDE_CBC_SHA
Wenn ich mein Projekt ausführen, stelle ich die JVM-Argumente wie folgt:
-Djavax.net.debug=all -Djavax.net.ssl.keyStore=/java_home/jre/lib/security/cacerts -Djava.net.keyStorePassword=changeit
Aber ich bekomme immer
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)'.
der Tat habe ich mehrere Operationen tun um das Problem zu beheben, wie zB:
- ersetzen JCE Gläser verschlüsseln, um unlimit
- Import cer Datei
- angegeben jks Pfad in Jvm Argumente
- Verwenden von angepassten SSL Cipher Suite
- Verwendung von SSL-Kanal
Aber jetzt JKS, ich immer noch nicht auf Handshake und die Fehlerprotokolle sind die gleichen wie über.
Oder muss ich den Cer von meinem Computer generieren und auf den Server hochladen? Können Sie uns bitte einen Rat geben?
ja, ich Kommentar jdk.tls.disabledAlgorithms = SSLv3 und viele ssl-Protokolle erhalten. Ich kann sehen, es gibt eine "no_certificate" Warnung im Abschnitt ServerHelloDone. Und es gibt einige Protokolle wie WRITE: SSLv3 Application Data. READ: SSLv3 Anwendungsdaten. Aber der Socket wurde sehr schnell geschlossen und kann immer noch keine Daten von MQ bekommen. – phony