![keytool 错误:java.security.cert.CertificateParsingException:签名字段无效](https://linux22.com/image/790295/keytool%20%E9%94%99%E8%AF%AF%EF%BC%9Ajava.security.cert.CertificateParsingException%EF%BC%9A%E7%AD%BE%E5%90%8D%E5%AD%97%E6%AE%B5%E6%97%A0%E6%95%88.png)
我有一个从 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