본문 바로가기
개발/JAVA

[JAVA] KeyStore에 Root 인증서 등록하기(SSLHandshakeException, PKIXException)

by zuzuu 2022. 5. 18.
반응형

신뢰할 수 있는 기관에서 발급받은 ssl인증서가 아니거나 보편적으로 신뢰할 수 있는 기관이지만 JAVA에서 신뢰하지 못하는 경우 HTTPS통신을 하게 될 때 SSLHandshakeException 혹은 PKIXException 에러가 밸생한다.

(해당 exception이 발생한건 TLS버전이 다르다거나.. 다른 이유가 원인일 수도 있지만 본 포스팅에서는 신뢰하지 않는 Root인증서일때에 대해 작성하겠다!)

이 경우 SSL인증서의 상위 인증기관을 JAVA의 keystore에 추가해주어야 한다. 자바의 keystore의경로는 JAVA_HOME/ib/security/cacerts 이다.


방법1. 명령어 이용

keytool -importcert -keystore "cacerts 경로" -storepass "저장소 패스워드" -file "인증서 경로" -alias "인증서 구분용 이름"

 

  • 예시
keytool -importcert -keystore C:\Progra~1\Java\jre1.8.0_144\lib\security\cacerts -storepass changeit -file D:/test.der -alias test

-storepass "저장소 패스워드"는 생략가능하며, 생략하고 명령어를 입력한다면 패스워드를 입력하라고 나온다. (default 패스워드는 changeit이다)



방법2. portecle 프로그램 사용

portecle-1.10.zip
3.61MB

  • cacerts 불러오기

default 패스워드 - changeit

 

  • Import Trusted Certificate.

 

  • 인증서의 신뢰여부 확인 후 별칭 등록하기

 

  • Save Keystore

 

 

 

728x90
반응형

댓글