java.lang.Ausnahme: die Öffentlichen Schlüssel in Antwort und keystore Stimmen nicht überein
Habe ich Zugriff auf einen webservice-gehostet auf port 443.Service-provider freigegeben hat drei-Zertifikat mit uns.
- ABCD.cer
- CA_Certificate.cer
- CCA_Certificate.cer
Habe ich, um Sie hinzuzufügen, um den keystore durch das erstellen einer Formular-Kette für die SSL-Kommunikation.Ich habe unten die Schritte.
-
keytool -keystore npci_keystore_test.jks -genkey -alias npci_client_testore
Result :- keystore npci_keystore_test.jks created.
-
keytool -import -keystore npci_keystore_test.jks -file CA_Certificate.cer -alias theCARoot
Result :- certificate CA_Certificate.cer is added to keystore.
-
keytool -import -keystore npci_keystore_test.jks -file CCA_Certificate.cer -alias theCCARoot
Result :- certificate CCA_Certificate.cer is added to keystore.
-
keytool -import -keystore npci_keystore_test.jks -file ABCD.cer -alias npci_client_testore
Beim Schritt 4 habe ich unten Ausnahme
Enter keystore password: (und wenn ich das Passwort eingeben habe ich unten Ausnahme)
keytool-Fehler: java.lang.Ausnahme: die Öffentlichen Schlüssel in Antwort und keystore Stimmen nicht überein
Habe ich bereits getan, die Suche SO,aber bisher kein Glück.
Ich bin nach unten-Quelle zu erstellen, die das speichern und importieren certificate in it.
JKS Keystore
EDIT:---
Habe ich es getestet, indem Sie ändern die import-Reihenfolge der Bescheinigung,aber kein Glück so weit.
InformationsquelleAutor RE350 | 2015-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den link in deiner Frage erläutert, wie Sie ein SSL-keystore für einen server, das ist nicht, was Sie tun möchten. Was Sie Tat, war:
Schritt 4 fehlschlägt, weil das SSL-Zertifikat generiert wurde, für ein völlig anderes Schlüsselpaar.
Die drei Zertifikate sind wahrscheinlich:
Was Sie jetzt tun müssen, ist fügen Sie einen Vertrauensanker zu Ihrem truststore (standardmäßig:
${JAVA_HOME}/jre/lib/security/cacerts
), mit der Folge, dass Ihr Kunde das SSL-Zertifikat der Webservices.In der Regel das SSL-server sendet die gesamte Kette mit Ausnahme des root-Zertifikats an den client während des SSL-handshake. Dies bedeutet, dass Sie müssen hinzufügen des Stammzertifikats zu Ihrem truststore:
Zusätzliche Schritte sind erforderlich, wenn der webservice erfordert SSL-client-Authentifizierung, aber Sie haben nie erwähnt, client-Authentifizierung, sodass ich davon ausgehe, dass es nicht notwendig ist.
Nein, so lange wie Sie nicht brauchen, client-Authentifizierung, kein keystore erforderlich.
Ich wirklich brauchen, um machen, Aufruf vom JAVA-client an einen rest-service(Dritter) zu Gast im port 443, bedeutet es, dass ich importieren müssen all diese Zertifikat zu Vertrauen store nur?
Sie können - KeyStore Explorer um zu überprüfen, ob client-Authentifizierung notwendig ist: Extras -> Prüfen SSL (lassen Sie "Enable Client-Authentifizierung" deaktiviert ist). Wenn Sie auf den Dienst zugreifen kann, ohne Fehler, dann ist nicht erforderlich.
InformationsquelleAutor Omikron
Das Problem hier ist die alias, die Sie beim importieren des Zertifikats, die ähnlich ist zu der, die Sie beim erstellen der JKS speichern. Ändern Sie einfach den alias und es löst Ihr Problem. Das Quelldokument [1] muss entsprechend korrigiert werden.
[1] http://docs.oracle.com/cd/E19509-01/820-3503/ggfgo/index.html
InformationsquelleAutor Ravindra Ranwala
In der 4-Punkt (wo Sie immer Fehler : keytool-Fehler: java.lang.Ausnahme: die Öffentlichen Schlüssel in Antwort und keystore Stimmen nicht überein), wo Sie den Import des Zertifikats, ändern Sie bitte die alias. Der alias sollte nicht npci_client_testore, wie es bereits bei der alias des keystore.
InformationsquelleAutor Rishi Raj Tandon
In meinem Fall die "root-Zertifikat signiert die CA" fehlt in der Kette. Bitte prüfen Sie, ob Sie über die entsprechenden ROOT-CA-Zertifikat andernfalls exportieren Sie es aus der mittleren und importieren Sie Sie in die keystore. durch den Import der Root-CA in meinem keystore für mich gearbeitet.
InformationsquelleAutor azhar buttar
dieser arbeitete für mich
keytool -keystore yourkeystorename -importcert -alias certificatealiasname -Datei certificatename.cer
InformationsquelleAutor guest98
Hatte ich die gleiche exception error (keystore Stimmen nicht überein) - hosting mit Tomcat8. Wenn Sie eingegeben haben ein
wrong domain name
oderno domain name
während der Erstellung Ihres Schlüsselspeicher, werden Sie brauchen, um neu zu erstellen Sie Ihre Keystore-Datei erneut und übermitteln Sie Ihre CSR-wieder an Ihre Zertifizierungsstelle (Certification Authority, CA) lizenziert/anerkannt/genehmigt zum Thema Digitale Signatur-Zertifikate (Godaddy in meinem Fall).Hier sind die Befehle zum erstellen einer keystore-Datei:
(Sie müssen geben Sie den domain-Namen, wenn die Eingabeaufforderung fragt, für einen ersten und letzten Namen, ist es das anfordern des Fully Qualified Domain Name (FDQN) z.B. http://www.example.com). Von der Stadt, Staat und Provinz -
do not abbreviate
Geben Sie den folgenden Befehl zum erstellen des CSR (aus dem gleichen Verzeichnis wie deine tomcat.keystore-Speicherort):
Hinweis: Aufgrund meiner früheren Fehler, ich hatte zu löschen, alle meine Zertifikate von Godaddy meiner windows-Konsole (MMC).
Sobald Ihr Zertifikat-Dateien bereit sind, von Ihrer Zertifizierungsstelle. Laden Sie die Dateien und doppelklicken Sie auf jedes 2 .crt-Dateien installieren Sie Sie wieder in windows (Wählen Sie " automatisch installieren im Lokalen Maschine). Machen Sie ein backup Ihrer tomcat.keystore-Datei dann importieren Sie diese Zertifikat-Dateien, UM in Ihrem tomcat.keystore-Datei (von vorne) mit der gleichen Reihenfolge wie im folgenden Beispiel:
Stellen Sie sicher, Sie haben aktualisiert, Ihr server.xml dann starten Sie Ihren Tomcat -
Voilà! Das Gesperrt-Symbol (Sichere Verbindung) wird angezeigt, wenn die Navigation auf der Domäne.
InformationsquelleAutor QA Specialist