
У меня есть файл сертификата X509 pem, который я получил из Mongo Atlas. Я пытаюсь импортировать его в хранилище ключей следующим образом:
keytool -importcert -file X509-cert.pem -alias myalias -keystore mykeystore.p12 -storetype PKCS12
Но я получаю эту ошибку:
keytool error: java.security.cert.CertificateParsingException: signed fields invalid
Мой pem-файл содержит сертификат и закрытый ключ:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
Поэтому я разделил их на cert.pem и key.pem, а затем попытался добавить их:
$ 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
Я получаю другую ошибку для сертификата, но ту же ошибку для ключа. В любом случае, я застрял на этих ошибках.
Как импортировать сертификат X509 в хранилище ключей? (Я делаю все это в модуле Kubernetes)
решение1
Проблема была в том, что имя псевдонима совпадало с псевдонимом моего хранилища ключей, что приводило к конфликту. Поэтому исправление выглядит так:
keytool -importcert -file X509-cert.pem -alias someOtherAlias -keystore mykeystore.p12 -storetype PKCS12