SunCertPathBuilderException: Unable to Find Valid Certification Path to Requested Target Error in Java
-
Was ist die
sun.security.provider.certpath.SunCertPathBuilderException
in Java -
Ursachen für
sun.security.provider.certpath.SunCertPathBuilderException: kein gültiger Zertifizierungspfad zum angeforderten Ziel gefunden
-
Lösung von
sun.security.provider.certpath.SunCertPathBuilderException: kein gültiger Zertifizierungspfad zum angeforderten Ziel gefunden
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
-
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.
-
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.
-
Klicken Sie dann auf
Verbindung ist sicher
. -
Zuletzt erhalten Sie den Status der Website, wenn er gültig ist.
- 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
. -
Klicken Sie auf den Abschnitt
Details
und exportieren Sie ein Zertifikat, indem Sie auf die SchaltflächeIn Datei kopieren
klicken. -
Exportieren Sie
DER
-kodierte Binärdateien. -
Wählen Sie das Verzeichnis, in dem Sie die Datei speichern möchten, und benennen Sie sie.
-
Wenn Sie auf
Fertig stellen
klicken, sehen Sie die MeldungDer Export war erfolgreich
.
-
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
-
Starten Sie Ihr Programm neu, um den Vorgang abzuschließen.
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.
LinkedInVerwandter Artikel - Java SSL
Verwandter Artikel - Java Error
- Adresse wird bereits verwendet JVM_Bind-Fehler in Java
- Android Java.Lang.IllegalStateException behoben: Methode der Aktivität konnte nicht ausgeführt werden
- Ausnahme im Hauptthread Java.Lang.ClassNotFoundException in IntelliJ IDEA
- Ausnahme im Hauptthread Java.Lang.NoClassDefFoundError
- Beheben Sie das Problem, dass Java nicht installiert werden kann. Es gibt Fehler in den folgenden Schaltern
- Beheben Sie den Fehler `Es wurde keine Java Virtual Machine gefunden` in Eclipse