erro keytool: java.security.cert.CertificateParsingException: campos assinados inválidos

erro keytool: java.security.cert.CertificateParsingException: campos assinados inválidos

Eu tenho um arquivo pem de certificado X509 que recebi do Mongo Atlas. Estou tentando importá-lo para o keystore assim:

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

Mas eu recebo este erro:

keytool error: java.security.cert.CertificateParsingException: signed fields invalid

Meu arquivo pem contém um certificado e uma chave privada:

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

Então eu os separei em cert.pem e key.pem e tentei adicioná-los:

$ 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

Recebo um erro diferente para o certificado, mas o mesmo erro para a chave. De qualquer forma, estou preso a esses erros.

Como posso importar meu certificado X509 para meu keystore? (Estou fazendo tudo isso em um pod do Kubernetes)

Responder1

O problema era que o nome do alias era igual ao alias do meu keystore, causando um conflito. Então, fazer isso corrigido é:

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

informação relacionada