Ich versuche, eine Java-Web-API über HTTPS zu verbinden. Es wird jedoch eine Ausnahme ausgelöst:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
Ich habe die folgenden Schritte ausgeführt, die ich aus Online-Tutorials zu Keytools und SSL-Zertifikaten gelernt habe:
Ich habe die HTTPS-URL in den Browser kopiert, die SSL-Zertifikate heruntergeladen und sie mit Internet Explorer im Browser installiert.
Exportierte die Zertifikate in einen Pfad auf meinem Computer, die Zertifikate wurden als gespeichert
.cerVerwendete die Importoption des Keytools. Der folgende Befehl wurde fehlerfrei ausgeführt.
keytool -import -alias downloadedCertAlias -keystore C:\path\to\my\keystore\cacerts.file -file C:\path\of\exportedCert.cerIch wurde an der Eingabeaufforderung zur Eingabe eines Kennworts aufgefordert, das ich eingegeben und dann authentifiziert habe.
Das
cmdFenster druckte einige Zertifikatdaten und Signaturen und ich wurde mit der Frage aufgefordert:Vertrauen Sie diesem Zertifikat?
Ich antwortete ja.
Die cmd-Eingabeaufforderung wird angezeigt
Zertifikat wurde zum Keystore hinzugefügt
Nach dieser Meldung wurde jedoch eine weitere Ausnahme angezeigt:
keytool error: java.io.FileNotFoundException: C:\Program files\...\cacerts <Access Denied>
Als ich schließlich den Keystore überprüfte, wurde das SSL-Zertifikat nicht hinzugefügt, und meine Anwendung gibt dieselbe Ausnahme aus, die ich früher beim Versuch, eine Verbindung herzustellen, erhalten habe:
(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)

keytoolBefehl, den Sie ausgeführt haben, und seine Ausgabe veröffentlichen? Einige der offensichtlichen Probleme hier sind der Tippfehler-keystoreund die Tatsache, dass Keytool den Schlüsselspeicher zum Importieren des Schlüssels nicht finden konnte