반응형
환경: 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
반응형
'개발 > java' 카테고리의 다른 글
타임 셰어링? 컨텍스트 스위칭? (0) | 2025.02.26 |
---|---|
[java] call by value (0) | 2025.02.25 |
[날짜변환] 멀티스레드에서 안전하게 날짜 포매팅하기 (0) | 2025.02.14 |
[redis] 자바에서 사용 가능한 레디스 클라이언트 (0) | 2025.01.23 |
[var] 타입 추론과 unchecked (1) | 2025.01.16 |