it-swarm.com.de

Fehler beim Importieren eines öffentlichen Zertifikats in einen Schlüsselspeicher

Ich habe ein öffentliches Zertifikat von einer Zertifizierungsstelle. Ich möchte mit diesem Zertifikat eine Java-SSL-Verbindung herstellen. Ich habe verwiesen Wie kann ich verschiedene Zertifikate für bestimmte Verbindungen verwenden? und Java SSL-Verbindung mit selbstsigniertem Zertifikat, ohne den vollständigen Keystore an den Client zu kopieren . Aus diesem Grund verstehe ich, dass ich das Zertifikat in einen Schlüsselspeicher importieren muss. Ich habe jedoch keinen Keystore von der Zertifizierungsstelle erhalten. Ich habe einen Schlüsselspeicher erstellt und versucht, das öffentliche Zertifikat in ihn zu importieren. Dann bekomme ich folgende Fehlermeldung:

keytool-Fehler: Java.lang.Exception: Öffentliche Schlüssel in Antwort und Schlüsselspeicher stimmen nicht überein

Benötige ich einen Schlüsselspeicher von der Zertifizierungsstelle oder mache ich etwas falsch?


Befehl zum Erstellen des Schlüsselspeichers:

keytool -genkey -alias Tomcat -keyalg RSA -keystore keystore.jks

Befehl zum Importieren des Zertifikats:

keytool -import -v -alias Tomcat -file signed-cert.pem -keystore keystore.jks
8
DanMatlin

Ich denke, Sie folgen dem Anmeldeprozess für Zertifikate nicht ordnungsgemäß. Überprüfen Sie diese Diskussion https://forums.Oracle.com/thread/1533940 , um sie ordnungsgemäß zu implementieren, indem Sie die folgenden Schritte ausführen:

  1. einen Keystore erstellen keytool -genkey -keyalg RSA -keystore test.keystore -validity 360 (dies generiert einen Keystore und einen Schlüssel (DC) mit dem Alias ​​"mykey")

  2. erstellen einer Zertifikatsignierungsanforderung (Certificate Signing Request, CSR). keytool -certreq -keyalg RSA -file test.csr -keystore test.keystore (dadurch wird eine Text-CSR-Datei generiert)

  3. Hatte das signierte Zertifikat generiert: http://www.instantssl.com/ssl-certificate-support/csr_generation/ssl-certificate-index.html

  4. Importiertes signiertes Zertifikat (Achten Sie beim Einfügen eines signierten Zertifikats aus Schritt 3 auf CRLFs). keytool -import -alias newkey -file <signed cert file> -keystore test.keystore (? Wichtig, dass dies einen anderen Alias ​​als Schritt 1 hat (standardmäßig "mykey") ")

  5. Exportieren des öffentlichen Schlüssels zur Verwendung durch den Client keytool -export -alias mykey -file test.publickey -keystore test.keystore

Auf dem Serversystem

  1. erstellen Sie einen Truststore keytool -genkey -keyalg RSA -keystore test.truststore -validity 360 (dies generiert einen Schlüsselspeicher und einen Schlüssel (DC) mit dem Alias ​​"mykey")

  2. Public Key importieren - zum Testen des SSL SOAP Service über Client keytool -import -file test.publickey -keystore test.truststore

Das Problem bestand darin, den Alias ​​in den Schritten 1 und 6 auf "mykey" zurücksetzen zu lassen. Wenn ich Schritt 6 geändert habe: keytool -genkey -alias testAlias -keyalg RSA -keystore test.truststore -validity 360

sie können mit Schritt 7 oben importieren (obwohl ich in Schritt 7 "-alias apublickey" hinzugefügt habe). Dies hat für mich funktioniert. 

5
PeggyP

Sie können das Werkzeug keyStore Explorer gui verwenden, um einen Keystore/ein Zertifikat zu erstellen und ein Zertifikat in den Keystore zu importieren/exportieren. 

3
ManojP

Beim Importieren des SSL-Zertifikats in den Keystore trat das gleiche Problem auf. In meinem Fall fehlte das Zertifikat der Stammzertifizierungsstelle in der Kette. Ich habe das Stammzertifikat in eine Datei exportiert und manuell in den Keystore importiert.

0
azhar buttar

Ändern Sie den Alias ​​von Tomcat in einen anderen, da Sie denselben Alias ​​für Keystore -genkey verwenden

0