2016-07-15 10 views
1

Ich versuche, einen Java-Client mit einem JMX-Server mit SSL-Zertifikat verbinden.SSL Handshake Fehler mit Java

Leider gibt diese Verbindung einen SSL-Handshake-Fehler. Als ich versuchte, dies zu debuggen, mit -Djavax.net.debug=all Flag, bekomme ich die folgende Fehlermeldung auf dem Java-Client.

2016-07-15T13: 29: 50,02 bis 0700 [APP/0] OUT RMI RenewClean- [10.200.0.27:44445,[email protected]], LESEN: TLSv1.2 Alarm , Länge = 2

2016-07-15T13: 29: 50.02-0700 [APP/0] AUS RMI RenewClean- [10.200.0.27:44445,[email protected]], RECV TLSv1 ALERT: fatal, handshake_failure

2016-07-15T13: 29: 50,02 bis 0700 [APP/0] OUT RMI RenewClean- [10.200.0.27:44445,[email protected]], genannt close~~POS=TRUNC()

2016-07-15T13: 29: 50.02-0700 [APP/0] OUT RMI RenewClean- [10.200.0.27:44445,[email protected]], Behandlungsausnahme: javax.net.ssl.SSLHandshakeException: Schwerwiegender Alarm empfangen: handshake_failure

Wenn ich den Client auf etwas anderes zu ändern, wie ein JConsole, die Verbindung funktioniert die gleiche SSL-Zertifikat und den Trusts mit, was darauf hindeutet, dass es nichts falsch mit dem SSL-Zertifikat oder die Domäne seine Verbindung zu.

+0

Wie Sie sich selbst bemerken: Es gibt Clients, die funktionieren und Ihr Client gehört nicht dazu. Das bedeutet, dass das Problem irgendwo in Ihrem Kunden liegt und ohne weitere Informationen über diesen Kunden Ihnen nicht zu helfen. Siehe [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (http://stackoverflow.com/help/mcve). –

Antwort

1

Es scheint, dass der Handshake aufgrund falscher TLS-Versionstypen fehlgeschlagen ist.

Mein Client lief auf Java7, das TLS Version 1 verwendete, während auf dem Server Java8 ausgeführt wurde, das TLS Version 1.2 verwendete.

prüfen diese oracle blog, die erwähnt, dass Java8 So verwenden TLS Version 1.2

ausfällt, wenn ich meine Client aktualisiert Java8 zu verwenden, wurde das Problem behoben.

Hoffe, das hilft auch jemand anderen.