[JAVA]자바 API 통신 오류(handshake_failure)
자바에서 API 통신 테스트중 아래와 같은 오류 발생
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
클라이언트에서 서버쪽으로 API통신을 시도하는데 서버와 클라이언트간 TLS 버전이 맞지 않아서 발생하는 오류로 확인.
TLS 버전
확인해보니 서버쪽에서 TLSv1.2를 사용하고있는데 클라이언트쪽에서 TLS 1.0으로 요청하여 오류발생.
TLS1.2버전은 jdk1.8이상인경우 기본적으로 적용되는데 현재 클라이언트쪽 jdk버전이 1.8아래버전을 사용중이었음
이런 경우 여러 방법들이 있지만, 그중 하나로, 자바 소스상에서 명시적으로 TLS버전을 1.2로 적용 후 보내면 해결 됨.
System.setProperty(“https.protocols”, “TLSv1.2”);
혹은 SSLContexts.custom().useProtocol(“TLSv1.2”).build()과 같이 TLSv1.2를 명시적으로 설정 등 방법은 다양함.