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 포드에서 수행하고 있습니다.)

답변1

문제는 별칭 이름이 내 키 저장소 별칭과 동일하여 충돌이 발생한다는 것입니다. 따라서 이를 수정하는 방법은 다음과 같습니다.

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

관련 정보