HttpURLConnection
를 사용해서 API를 호출 하던 중 에러가 발생했다!!
javax.net.ssl.SSLException: Received fatal alert: protocol_version
SSL/TLS 프로토콜 버전
에 관한 문제로, 클라이언트
와 연결하려는 서버
간의 프로토콜 불일치로 발생하는 문제
HTTPS 통신 시 SSLProtocol 버전이 권장하는 버전보다 낮을 경우 발생
▼ 자바 버전 별 default/supported protocol version
이미지 출처 : https://www.ateam-oracle.com/tls-and-java
SSL(Secure Socket Layer) : 이전에 사용하던 암호화 채널. 현재 SSL(1.0, 2.0, 3.0)의 모든 버전은 여러 가지 보안 문제로 사용되지 않고 대부분의 브라우저에서 경고를 표시한다. SSL 3.0은 TLS 1.0으로 대체되었다.
TLS(Transport Layer Security) : 표준화된 통신용 암호화 프로토콜이다. 현재 TLS 버전(1.0, 1.1, 1.2)을 사용하고 있으며 1.3 버전은 초안이다. 구글 크롬과 같은 웹 브라우저는 이제 HTTP 웹사이트를 ‘안전하지 않음’으로 표시하고 경고 창 발생시킴.
System.setProperty("https.protocols", "TLSv1.2"); // 또는 "TLSv1.1" 또는 "TLSv1"
System.setProperty("https.cipherSuites", "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256");
일단 나는 코드 내에 SSL/TLS 버전 호환성 세팅
하는 부분을 추가 해주니까 정상적으로 호출 됐다!!
위치는 URL 세팅하는 부분 바로 밑에 넣어줬다~ .~