Heim  >  Artikel  >  Java  >  ## Warum erhält mein Java-Client beim Zugriff auf einen HTTPS-Webdienst die Fehlermeldung „PKIX-Pfadaufbau fehlgeschlagen“?

## Warum erhält mein Java-Client beim Zugriff auf einen HTTPS-Webdienst die Fehlermeldung „PKIX-Pfadaufbau fehlgeschlagen“?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 17:52:03375Durchsuche

## Why does my Java client get a

PKIX-Pfadaufbau fehlgeschlagen: Gültiger Zertifizierungspfad zum angeforderten Ziel konnte nicht gefunden werden

Frage:

Beim Versuch, über einen Java-Client auf einen bestimmten HTTPS-Webdienst zuzugreifen, tritt die folgende Ausnahme auf:

java.lang.RuntimeException: PKIX path building failed: unable to find valid certification path to requested target

Antwort:

Diese Ausnahme zeigt an, dass die Der Java-Client kann aufgrund eines Problems mit der vom Server präsentierten Zertifikatskette keine sichere Verbindung mit dem Webdienst herstellen.

Mögliche Lösungen:

  1. Trust Store konfigurieren:

    Der Client hat möglicherweise nicht die erforderlichen Zertifikate in seinem Trust Store installiert. Um dieses Problem zu beheben, legen Sie die Systemeigenschaften so fest, dass sie den Pfad zum Trust Store und sein Passwort angeben:

    <code class="java">System.setProperty("javax.net.ssl.trustStore", "clientTrustStore.key");
    System.setProperty("javax.net.ssl.trustStorePassword", "password");</code>
  2. Serverzertifikat importieren:

    Wenn der Truststore des Clients das Zertifikat des Servers nicht enthält, importieren Sie es manuell. Befolgen Sie diese Schritte:

    • Exportieren Sie das Serverzertifikat im PEM-Format (z. B. Certificate.crt) mit einem Tool wie OpenSSL.
    • Konvertieren Sie die PEM-Datei in eine binäre X .509-Zertifikatdatei (z. B. Zertifikat.der):

      <code class="shell">openssl x509 -in certificate.pem -out certificate.der -outform DER</code>
    • Importieren Sie die DER-Datei mit dem Keytool-Dienstprogramm in den Truststore des Clients:

      <code class="shell">keytool -import -alias server_cert -file certificate.der -keystore clientTrustStore.key</code>
  3. Java-SSL-Konfiguration aktualisieren:

    Stellen Sie sicher, dass die Java-SSL-Konfiguration korrekt eingestellt ist. Ändern Sie beispielsweise ~/.java/jre/lib/security/jssecacerts oder verwenden Sie den folgenden Befehl:

    <code class="shell">keytool -import -alias server_cert -file certificate.der -keystore cacerts</code>
  4. SSL-Zertifikatsüberprüfung deaktivieren (nicht empfohlen):

    Als vorübergehende Maßnahme können Sie die SSL-Zertifikatsüberprüfung deaktivieren, dies wird jedoch aus Sicherheitsgründen nicht empfohlen:

    <code class="java">HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);</code>
  5. Obtain Anderes Zertifikat:

    Wenn der Webdienst ein bestimmtes Zertifikat erfordert, besorgen Sie sich dieses Zertifikat und installieren Sie es im Truststore des Clients.

Das obige ist der detaillierte Inhalt von## Warum erhält mein Java-Client beim Zugriff auf einen HTTPS-Webdienst die Fehlermeldung „PKIX-Pfadaufbau fehlgeschlagen“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn