Heim >Java >javaLernprogramm >Wie kann „sun.security.provider.certpath.SunCertPathBuilderException: gültiger Zertifizierungspfad zum angeforderten Ziel konnte nicht gefunden werden' behoben werden?

Wie kann „sun.security.provider.certpath.SunCertPathBuilderException: gültiger Zertifizierungspfad zum angeforderten Ziel konnte nicht gefunden werden' behoben werden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-21 19:18:12358Durchsuche

How to Resolve

Auflösung der Ausnahme „sun.security.provider.certpath.SunCertPathBuilderException: Gültiger Zertifizierungspfad zum angeforderten Ziel konnte nicht gefunden werden“

Der bereitgestellte Code versucht, eine Datei von einem HTTPS-Server herunterzuladen, stößt jedoch auf einen zertifikatsbezogenen Fehler. Dieser Fehler tritt häufig auf, wenn der Server ein selbstsigniertes Zertifikat vorlegt, dem die JVM des Clients nicht vertraut.

Um dieses Problem zu beheben, können Sie den Client anweisen, dem Zertifikat des Servers zu vertrauen. So geht's:

Rufen Sie das Serverzertifikat mit einem Browser ab

  1. Besuchen Sie den HTTPS-Server in Ihrem Browser.
  2. Klicken Sie auf das Schlosssymbol Klicken Sie auf die Adressleiste und sehen Sie sich die Zertifikatsdetails an.
  3. Exportieren Sie das Zertifikat als Datei, normalerweise mit einer .cer- oder .cer-Datei .crt-Erweiterung.

Fügen Sie das Zertifikat zum Truststore der JVM hinzu

Es gibt zwei Möglichkeiten, dies zu tun:

  • Bearbeiten JAVA_HOME/jre/lib/security/cacerts:

    1. Öffnen Sie die cacerts-Datei in /JAVA_HOME/jre/lib/security/ mit einem Java-Keytool-Dienstprogramm.
    2. Importieren Sie das exportierte Zertifikat mit dem Befehl -importcert. Zum Beispiel:

      keytool -keystore cacerts -importcert -file my_server_cert.cer
  • Verwenden Sie den Parameter -Djavax.net.ssl.trustStore:

    Sie können Geben Sie einen anderen Truststore-Speicherort an, indem Sie das Java-System festlegen Eigenschaft:

    java -Djavax.net.ssl.trustStore=/path/to/my_truststore

Hinweis: Stellen Sie sicher, dass Sie die richtige JDK/JRE-Version verwenden, da diese den Speicherort der cacerts-Datei beeinflusst.

Indem Sie dem Zertifikat vertrauen, autorisieren Sie den Client, mit dem Server zu kommunizieren, auch wenn keine vertrauenswürdige Zertifizierungsstelle vorhanden ist. Es ist jedoch wichtig zu beachten, dass dies Sicherheitsrisiken mit sich bringen kann, wenn das Zertifikat des Servers nicht vertrauenswürdig ist.

Das obige ist der detaillierte Inhalt vonWie kann „sun.security.provider.certpath.SunCertPathBuilderException: gültiger Zertifizierungspfad zum angeforderten Ziel konnte nicht gefunden werden' behoben werden?. 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