[PKCS#12 파일 비밀번호 인증실패] Caused by: java.io.IOException: keystore password was incorrect

경쓱타드·2024년 8월 2일
0

에러

목록 보기
1/7

에러발생

새로운 SSL 인증서를 발급한 후 있었던 .p12를 변경했는데 아래와 같은 에러가 발생했다.

Caused by: java.io.IOException: keystore password was incorrect
	at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2108) ~[na:na]
	at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:222) ~[na:na]
	at java.base/java.security.KeyStore.load(KeyStore.java:1479) ~[na:na]
	at org.apache.tomcat.util.security.KeyStoreUtil.load(KeyStoreUtil.java:67) ~[tomcat-embed-core-9.0.78.jar:9.0.78]
	at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:218) ~[tomcat-embed-core-9.0.78.jar:9.0.78]
	at org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:209) ~[tomcat-embed-core-9.0.78.jar:9.0.78]
	at org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:282) ~[tomcat-embed-core-9.0.78.jar:9.0.78]
	at org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:246) ~[tomcat-embed-core-9.0.78.jar:9.0.78]
	at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:105) ~[tomcat-embed-core-9.0.78.jar:9.0.78]
	... 26 common frames omitted

해결방법

  • .p12의 비밀번호를 입력해서 정보를 확인하는 명령어인데, 비밀번호를 입력했을 때에는 정상적으로 작동한다.
openssl pkcs12 -info -in keystore.p12

  • 파일의 비밀번호를 검증하기 위해서 아래의 명령어를 입력하면 아래와 같이 비밀번호가 맞지 않는다고 나온다.
keytool -list -v -keystore keystore-local.p12 -storetype PKCS12
C:\Users\sinar\Desktop\Spring-Project\insurePro-key>keytool -list -v -keystore keystore-local.p12 -storetype PKCS12
Enter keystore password:
keytool error: java.io.IOException: keystore password was incorrect
java.io.IOException: keystore password was incorrect
        at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2108)
        at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:222)
        at java.base/java.security.KeyStore.load(KeyStore.java:1479)
        at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1050)
        at java.base/sun.security.tools.keytool.Main.run(Main.java:397)
        at java.base/sun.security.tools.keytool.Main.main(Main.java:390)
Caused by: java.security.UnrecoverableKeyException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
        ... 6 more

  • openssl이 아닌 다른 방식인 keytool을 이용해서 새로운 .p12를 생성해서 사용하니 정상 작동
keytool -genkeypair -alias insurepro -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore-local.p12 -validity 365

원인분석

  • openssl과 keytool을 이용한 PKCS#12 파일의 spring 애플리케이션에서 인식이 안되는 이유
    • 형식 호환성: OpenSSL과 keytool의 PKCS#12 파일 형식이 다를 수 있음
    • 비밀번호: 비밀번호 설정 방식이 다를 수 있으므로 정확히 입력
    • 옵션 차이: 두 도구에서 사용하는 옵션이 다를 수 있으므로 확인
    • 검증 및 변환: 파일의 내용을 검증하고 필요시 변환하여 사용
profile
백엔드 개발자를 시작으로 도메인 이해도까지 풍부한 개발자가 목표입니다!

0개의 댓글