Ich habe ein öffentliches Zertifikat von einer Zertifizierungsstelle. Ich möchte eine Java SSL-Verbindung mit diesem Zertifikat erstellen. Ich habe Wie kann ich verwenden verschiedene Zertifikate für bestimmte Verbindungen? und Java-SSL-Verbindung mit selbstsigniertem Zertifikat, ohne den vollständigen Keystore auf den Client zu kopieren . Von diesem verstehe ich, dass ich das Zertifikat in einen Schlüsselspeicher importieren muss. Ich habe jedoch keinen Keystore von der CA erhalten. Ich habe einen Keystore erstellt und versucht, das öffentliche Zertifikat dorthin zu importieren. Aber dann bekomme ich den folgenden Fehler:
keytool Fehler: java.lang.Exception: Öffentliche Schlüssel in Antwort und Schlüsselspeicher stimmen nicht überein
Brauche ich einen Keystore von der CA oder mache ich etwas falsch?
Befehl zum Erstellen des Schlüsselspeichers:
%Vor%Befehl zum Importieren des Certs:
%Vor%Ich glaube, Sie verfolgen den Anmeldevorgang nicht ordnungsgemäß. Überprüfen Sie diese Diskussion Ссылка , um sie ordnungsgemäß zu implementieren, indem Sie die folgenden Schritte ausführen:
Erstellen Sie einen Schlüsselspeicher %Code% (Dies erzeugt einen Schlüsselspeicher und einen Schlüssel (DC) mit Alias von "mykey")
Erstellen Sie eine Zertifikatsignierungsanforderung (Certificate Signing Request, CSR). %Code% (Dies generiert eine CSR-Textdatei)
Wurde ein signiertes Zertifikat erstellt: Ссылка
Importiertes signiertes Zertifikat (Achten Sie auf CRLFs, wenn Sie das Zertifikat aus Schritt 3 einfügen) %Code% (wichtig, dass es einen anderen Alias als Schritt 1 hat (standardmäßig "mykey")?
Exportieren Sie den öffentlichen Schlüssel für die Client-Nutzung
keytool -genkey -keyalg RSA -keystore test.keystore -validity 360
Auf dem Server-System
Erstellen Sie einen Truststore %Code% (Dies erzeugt einen Schlüsselspeicher und einen Schlüssel (DC) mit Alias von "mykey")
Öffentlicher Schlüssel importieren - zum Testen des SSL SOAP-Dienstes über den Client
keytool -certreq -keyalg RSA -file test.csr -keystore test.keystore
Das Problem bestand darin, den Alias in den Schritten 1 und 6 standardmäßig auf "mykey" setzen zu lassen.
Als ich Schritt 6 änderte:
keytool -import -alias newkey -file <signed cert file> -keystore test.keystore
Sie können mit Schritt 7 oben importieren (obwohl ich " keytool -export -alias mykey -file test.publickey -keystore test.keystore
" in Schritt 7 hinzugefügt habe).
Das hat für mich funktioniert.
Sie können das Schlüsselprogramm keyStore explorer verwenden, um Keystore / Zertifikate zu generieren und Zertifikate in Keystore zu importieren / exportieren.
Ich hatte beim Importieren des SSL-Zertifikats in den Keystore dasselbe Problem. In meinem Fall fehlte das Zertifikat der Root CA in der Kette. Ich habe das Stammzertifikat in eine Datei exportiert und manuell in den Keystore importiert.
Tags und Links java certificate ssl-certificate keystore keytool