Heim > Java > javaLernprogramm > Hauptteil

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

Barbara Streisand
Freigeben: 2024-10-26 17:52:03
Original
372 Leute haben es durchsucht

## 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
Nach dem Login kopieren

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>
    Nach dem Login kopieren
  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>
      Nach dem Login kopieren
    • 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>
      Nach dem Login kopieren
  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>
    Nach dem Login kopieren
  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>
    Nach dem Login kopieren
  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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!