
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 ポッドで実行しています)
答え1
問題は、エイリアス名がキーストアのエイリアスと同じで競合が発生していたことです。これを修正するには、次のようにします。
keytool -importcert -file X509-cert.pem -alias someOtherAlias -keystore mykeystore.p12 -storetype PKCS12