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

相關內容