2016-05-07 26 views
1

Ich habe 2 frische Maschinen mit der gleichen Version von JDK7 installiert.javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX Pfadaufbau fehlgeschlagen passiert auf einer Maschine, aber nicht auf der anderen

Und auf einer der Maschinen kann ich erfolgreich eine Verbindung mit dem Remote-Host von meiner Java-Anwendung über HTTPS ohne Probleme und ohne Importieren von Zertifikaten in die Standard-Keystore "cacerts".

Aber auf der anderen Maschine bekomme ich den Subj-Fehler.

JDKs auf beiden Maschinen sind absolut gleich. Der einzige Unterschied zwischen Maschinen ist, dass einer von ihnen in Europa und einer in den USA liegt (das ist der, wo ich den Fehler bekomme).

Hat jemand eine Ahnung, was diesen Fehler in meinem Fall verursachen könnte?

UPDATE

Zertifikat des Host zu verbinden Ich versuche, von QuoVadis CA ausgestellt wird, die den entsprechenden Datensatz standardmäßig in cacerts in Java distibution hat.

UPDATE2

Sieht aus wie die problematische Maschine aus irgendeinem Grunde erhält nicht die gesamte Zertifikatskette von der Maschine, die es versucht, eine Verbindung (I nur das letzte Zertifikat von der Kette sehen und direkt nach das folgt einer Nachricht certificate_unknown). So erhält es das Stammzertifikat nicht.

Außer, dass der einzige Unterschied, den ich im Protokoll sehen kann, ist, dass Maschine arbeiten verwendet TLS_RSA_WITH_AES_128_CBC_SHA Cipher-Suite und nicht die Arbeitsmaschine verwendet TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Cipher Suite. Könnte das ein Grund für mein Problem sein? (Ich kann auch nicht verstehen, warum sie verschiedene Cipher Suites verwenden, während JDKs gleich sind und sie sich mit demselben Rechner verbinden)

+0

Sie können Ihr Problem mit der Einstellung '-Djavax.net.debug = ssl' untersuchen – Dici

+0

Danke, das habe ich schon gemacht. Der Fehler ist "certificate_unknown". Ich frage mich nur, warum dies nur auf einer von zwei absolut ähnlichen Maschinen geschieht, mit den gleichen JDKs und dem gleichen "cacerts" Keystore. – base2

+0

Wenn dieses Flag aktiviert ist, sollten Sie viele Protokolle haben, um das Problem zu diagnostizieren, nicht nur die Fehler auf oberster Ebene. Vergleichen Sie die Protokolle für die Maschine, die funktioniert und die Maschine, die nicht funktioniert – Dici

Antwort

0

Versuchen Sie, die Keystore-Zertifikate einmal zu vergleichen. Ich hatte ein ähnliches Problem, wo eine Maschine andere Anwendungen hatte, die die gleichen Zertifikate hinzufügten, und es funktionierte gut, aber eine eigenständige Maschine war nicht.

+0

Vielen Dank. Ich habe Keystores verglichen und sie sind gleich. Ich habe sogar versucht, den Keystore von der Maschine, wo es gut funktioniert, auf die problematische Maschine zu kopieren, aber das Problem bleibt bestehen. – base2