keytool 错误:java.security.cert.CertificateParsingException:签名字段无效

keytool 错误:java.security.cert.CertificateParsingException:签名字段无效

我有一个从 Mongo Atlas 获得的 X509 证书 pem 文件。我尝试将其导入密钥库,如下所示:

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 pod 中完成所有这些操作)

答案1

问题是别名与我的密钥库别名相同,从而导致冲突。因此,修复方法是:

keytool -importcert -file X509-cert.pem -alias someOtherAlias -keystore mykeystore.p12 -storetype PKCS12

相关内容