
Ich habe eine X509-Zertifikat-PEM-Datei, die ich von Mongo Atlas erhalten habe. Ich versuche, sie wie folgt in den Schlüsselspeicher zu importieren:
keytool -importcert -file X509-cert.pem -alias myalias -keystore mykeystore.p12 -storetype PKCS12
Aber ich erhalte diesen Fehler:
keytool error: java.security.cert.CertificateParsingException: signed fields invalid
Meine PEM-Datei enthält ein Zertifikat und einen privaten Schlüssel:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
Also habe ich sie in cert.pem und key.pem aufgeteilt und dann versucht, sie hinzuzufügen:
$ keytool -importcert -file cert.pem -alias myalias -keystore mykeystore.p12 -storetype PKCS12
Enter keystore password:
keytool error: java.lang.Exception: Public keys in reply and keystore don't match
$ keytool -importcert -file key.pem -alias myalias -keystore mykeystore.p12 -storetype PKCS12
Enter keystore password:
keytool error: java.security.cert.CertificateParsingException: signed fields invalid
Ich erhalte einen anderen Fehler für das Zertifikat, aber denselben Fehler für den Schlüssel. So oder so stecke ich bei diesen Fehlern fest.
Wie kann ich mein X509-Zertifikat in meinen Schlüsselspeicher importieren? (Ich mache das alles in einem Kubernetes-Pod.)
Antwort1
Das Problem bestand darin, dass der Aliasname mit meinem Keystore-Alias identisch war, was einen Konflikt verursachte. Dies lässt sich folgendermaßen beheben:
keytool -importcert -file X509-cert.pem -alias someOtherAlias -keystore mykeystore.p12 -storetype PKCS12