SunCertPathBuilderException: Unable to Find Valid Certification Path to Requested Target Error in Java

Muhammad Zeeshan 12 Oktober 2023
  1. Was ist die sun.security.provider.certpath.SunCertPathBuilderException in Java
  2. Ursachen für sun.security.provider.certpath.SunCertPathBuilderException: kein gültiger Zertifizierungspfad zum angeforderten Ziel gefunden
  3. Lösung von sun.security.provider.certpath.SunCertPathBuilderException: kein gültiger Zertifizierungspfad zum angeforderten Ziel gefunden
SunCertPathBuilderException: Unable to Find Valid Certification Path to Requested Target Error in Java

Im heutigen Beitrag werden mögliche Gründe für nicht in der Lage, einen gültigen Zertifizierungspfad zum angeforderten Ziel zu finden und seine Lösung in Java erörtert.

Aber bevor wir fortfahren, müssen Sie die SSL-Verschlüsselung und -Zertifikate genau verstehen, da ein klares Verständnis von SSL-Zertifikaten erforderlich ist.

SSL-Verschlüsselung und Zertifikate: Ohne ein SSL-Zertifikat kann eine HTTPS-Verbindung nicht richtig funktionieren. Durch die Verwendung eines Satzes öffentlicher und privater Schlüssel untermauert es die behauptete Identität des Dienstes oder der Website.

Der private Schlüssel verschlüsselt oder signiert alles, was von der Domäne geliefert wird, und die Client-Apps validieren die Identifizierung, indem sie die öffentlichen Schlüssel verwenden.

Was ist die sun.security.provider.certpath.SunCertPathBuilderException in Java

Die sun.security.provider.certpath.SunCertPathBuilderException ist eine Klasse zur Behandlung von Ausnahmen in Java, die die SSL-Zertifikate des Servers prüft, zu denen das Java-Programm versucht, eine Verbindung herzustellen. Diese Klasse wurde nach dem Anbieter benannt, der die Zertifikate erstellt hat.

Die folgende Fehlermeldung wird dem Entwickler angezeigt, wenn dieses Problem auftritt.

Caused by : sun.security.provider.certpath.SunCertPathBuilderException
    : unable to find valid certification path to requested target

Es kann während jeder Aktion ausgelöst werden, die den Besuch eines verschlüsselten Dienstes mit SSL beinhaltet.

SSL-geschützte APIs und Websites werden vom Java-Framework auf Vertrauenswürdigkeit geprüft, bevor sie aufgerufen werden können. Dies wird erreicht, indem die interne vertrauenswürdige Liste untersucht wird, um festzustellen, ob die signierte Stammzertifizierungsstelle darin enthalten ist.

Java gibt diesen Fehler aus, wenn es keinen Verweis auf den Dienst erkennen kann. Die Verwendung eines selbstsignierten Zertifikats für den Zugriff auf einen Dienst, der von der digitalen Signatur einer anderen Person signiert wurde, schlägt immer fehl.

Ursachen für sun.security.provider.certpath.SunCertPathBuilderException: kein gültiger Zertifizierungspfad zum angeforderten Ziel gefunden

Die einzige Möglichkeit, wie Java sich mit einem anderen Programm über SSL verbinden kann, ist, wenn es HTTPS usw. vertrauen kann. In der Java-Welt gibt es einen Truststore, normalerweise $JAVA HOME/lib/security/cacerts, in dem Sie Ihre Vertrauenszertifikate speichern.

Diese Ausnahme wird durch ein selbstsigniertes Zertifikat oder eine Zertifikatskette ausgelöst, die nicht im Java-Truststore vorhanden ist. Java verweigert die Verbindung zur Anwendung, weil es dem Zertifikat nicht vertraut.

Lösung von sun.security.provider.certpath.SunCertPathBuilderException: kein gültiger Zertifizierungspfad zum angeforderten Ziel gefunden

  1. Stellen Sie zunächst fest, ob das Problem vom Zertifikat oder vom Netzwerk herrührt. Um dies zu überprüfen, öffnen Sie die URL in Google Chrome oder Ihrem bevorzugten Browser und prüfen Sie, ob sie funktioniert.

    In diesem Fall muss eine ungültige Zertifikatseinstellung auf dem Anwendungsclient die Quelle der Ausnahme sein. Es kann ein Problem mit der Firewall oder den Netzwerkeinstellungen geben, wenn der Browser nicht darauf zugreifen kann.

  2. Rufen Sie das SSL-Zertifikat des Servers ab, nachdem Sie festgestellt haben, ob es ein Problem mit den Zertifikatseinstellungen gibt. Dies kann im einfachsten Fall das Stammzertifikat sein, aber in den meisten Fällen sind eine Zertifikatskette und eine zwischengeschaltete Zertifizierungsstelle erforderlich.

    Sie können die Gültigkeit des SSL-Zertifikats überprüfen, indem Sie die folgenden Schritte ausführen.

  • Öffnen Sie Ihren Browser und klicken Sie auf das Schloss in der linken oberen Ecke.

    Chromsperre der URL

  • Klicken Sie dann auf Verbindung ist sicher.

    Verbindung ist sicher

  • Zuletzt erhalten Sie den Status der Website, wenn er gültig ist.

    Zertifikat ist gültig

  1. Wenn Sie Zertifikatsdetails exportieren möchten, führen Sie die folgenden Schritte aus.
  • Wählen Sie das Schlosssymbol neben der URL-Leiste und klicken Sie dann auf Verbindung ist sicher > Zertifikat ist gültig.

    Zertifikat ist gültig

    Zertifikat

  • Klicken Sie auf den Abschnitt Details und exportieren Sie ein Zertifikat, indem Sie auf die Schaltfläche In Datei kopieren klicken.

    Klickdetails

    In Datei kopieren

    Exportassistent

  • Exportieren Sie DER-kodierte Binärdateien.

    export der

  • Wählen Sie das Verzeichnis, in dem Sie die Datei speichern möchten, und benennen Sie sie.

    Durchsuchen

  • Wenn Sie auf Fertig stellen klicken, sehen Sie die Meldung Der Export war erfolgreich.

    Der Export war erfolgreich

  1. Beginnen Sie einen Truststore-Eintrag mit einem neuen Zertifikat. Dazu kann das Key-Tool-Dienstprogramm verwendet werden.

    Führen Sie den folgenden Befehl aus, um einen neuen Trust Store zu erstellen.

    keytool - import - file C :\cascerts\firstCA.cert - alias firstCA - Keystore myTrustStore
    
  2. Starten Sie Ihr Programm neu, um den Vorgang abzuschließen.

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Verwandter Artikel - Java SSL

Verwandter Artikel - Java Error