SSL Handshake fehlgeschlagen - Java 1.8

Nur um die Leute auf ein Problem aufmerksam zu machen, das viele nach dem Upgrade auf Java 1.8 hatten. Nicht alle Lösungen sind gleich, daher wird angegeben, wie ich das gelöst habe.

Aber zuerst ... Dies ist keine Lösung, die Produktionssysteme verdient, da die Sicherheit effektiv herabgestuft wird. Wenn Sie jedoch das Testen usw. blockieren, ist dies wahrscheinlich ganz gut geeignet.

Mein Problem war, dass egal was ich getan habe ... SSLv3 usw. aktiviert habe. Ich habe immer @ erhalte

"javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure".

Hier sind die Schritte, die ich unternommen habe, um dieses Problem zu lösen.

Zunächst habe ich herausgefunden, welche Verschlüsselung der Server verwendet. Ich habe das über openssl gemacht.

openssl s_client -host yourproblemhost.com -port 443

Dies ergibt (am Ende ...)

SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : RC4-MD5

Now .. was verwenden wir "Java-weise", um diese Chiffre zu aktivieren?

Oracle link

In diesem Link sind die Namen und ihr Java-Gegenstück enthalten. Für RC4-MD5 haben wir also SSL_RSA_WITH_RC4_128_MD5.

OK gut. Jetzt habe ich eine System-Eigenschaft hinzugefügt.

-Dhttps.cipherSuites=SSL_RSA_WITH_RC4_128_MD5

Und in meinem Code ...

Security.setProperty("jdk.tls.disabledAlgorithms", "" /*disabledAlgorithms */ );

Nochmal..dies ist ein absoluter letzter Ausweg "Verlegenheit" ... Aber wenn du deinen Kopf gegen eine Wand triffst, um ihn zum Laufen zu bringen (zum Testen), hoffe ich, dass er nützlich ist.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage