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
.cer
Verwendete 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.cer
Ich wurde an der Eingabeaufforderung zur Eingabe eines Kennworts aufgefordert, das ich eingegeben und dann authentifiziert habe.
Das
cmd
Fenster 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)
keytool
Befehl, den Sie ausgeführt haben, und seine Ausgabe veröffentlichen? Einige der offensichtlichen Probleme hier sind der Tippfehler-keystore
und die Tatsache, dass Keytool den Schlüsselspeicher zum Importieren des Schlüssels nicht finden konnte