개발/Web
[Web] Received fatal alert: handshake_failure 에러
zuzuu
2022. 3. 8. 17:33
반응형
이 에러는 서버와 클라이언트간의 TLS 버전이 달라서 발생하는 에러이다.
Received fatal alert: handshake_failure
서버는 JDK 1.6이라 TLSv1만 지원을 하고 있다. 따라서 https.protocols을 TLSv1로 지정해야 한다.
jdk 버전 | Default | Other Support |
1.6 | TLS 1.0 | TLS 1.1(111이후 버전), SSL v3.0 |
1.7 | TLS 1.0 | TLS 1.1, TLS 1.2, SSL v3.0 |
1.8 | TLS 1.2 | TLS 1.0, TLS 1.1, SSL v3.0 |
※ JDK 1.6.0_111 이후 TLS1.1 지원, 1.6.0_121 이후 TLS 1.2 지원(단, jsse.enableSNIExtension 등의 옵션 설정은 불가능)
해결 방법 1
Run>Run Configurations에서 Tomcat 선택 후 Arguments 탭의 VM arguments에 아래 내용 추가 혹은 apache-tomcat/bin/catalina.sh에 아래 내용 추가하기
-Dhttps.protocols=TLSv1
해결 방법 2
System.setProperty() 를 사용하여 https.protocols 속성 지정하기
System.setProperty( "https.protocols", "TLSv1" );
그리고 -Djavax.net.debug=all을 추가해주면 SSL/TLS 디버깅이 가능하다.
728x90
반응형