반응형

환경: jdk6, bouncy castle 설치됨, https 통신 필요

https통신 시도 시 아래와 같은 에러 발생

원인

  • JDK 6 환경에서 TLS 1.2 통신을 시도
    • 기본적으로 JDK 6은 TLS 1.2를 지원하지 않음
    • 하지만 Bouncy Castle을 설치하여 강제로 TLS 1.2를 활성화함
  • TLS Handshake 실패
    • 서버가 제공한 인증서를 검증할 때, JDK 6의 TrustStore (신뢰할 수 있는 루트 인증서 저장소)에 해당 루트 인증서가 없었음
    • 즉, 신뢰할 수 있는 CA(인증 기관)의 인증서가 누락되어 있어 통신 실패

해결

  • 루트 인증서를 설치하고 JDK 6 KeyStore에 추가
    • keytool 명령어를 사용하여 루트 인증서를 JDK 6의 TrustStore에 등록 
    • cacerts는 JDK의 기본 TrustStore ($JAVA_HOME/jre/lib/security/cacerts)
keytool -import -trustcacerts -keystore cacerts -storepass changeit -file rootCA.crt -alias myrootca
  • 다시 TLS 1.2 통신을 시도하여 성공
    • 루트 인증서가 추가되었으므로 서버 인증서 검증이 정상적으로 완료됨
    • 최종적으로 TLS 1.2 통신이 정상적으로 수행됨

 

728x90
반응형

+ Recent posts