-
javamail ssl 오류 SSLHandshakeException프로그래밍/자바 2021. 11. 4. 16:56반응형
자바 메일 발송시 다음과 같은 Exception이 발생하였다.
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) JDK가 TLS 프로토콜이 비활성 되어있거나 TLS 버전이 상이하여 발생하는 것이다.
그래서 다음 명령어를 통해 어떤 버전이 지원 가능한지 서버에 요청해 보았다.
$ openssl s_client -connect 서버주소:465 -tls1_2 TLS 1.2 와 1.3은 정상 접속이 되는데 1.1은 error:141E70BF:SSL routines 라는 오류가 발생하였다.
그래서 자바 메일에서 사용할 기본 TLS 버전을 1.2로 변경하기로 했다. JDK가 사용할 TLS 클라이언트 버전 설정은 시스템프로퍼티로 등록하면 된다.
System.setProperty("jdk.tls.client.protocols", "TLSv1.2"); 혹은 java 옵션 -Djdk.tls.client.protocols=TLSv1.2을 사용한다.
https의 TLS 버전을 변경하고 싶을 땐 -Dhttps.protocols=TLSv1.2 옵션을 사용한다.
Property Description jdk.tls.client.protocols 기본 JDK TLS 프로토콜 설정 https.protocols HttpsURLConnection 클래스 또는 URL.openStream() 작업을 사용하여 https 연결을 얻는 클라이언트에서 사용하는 프로토콜 설정 반응형'프로그래밍 > 자바' 카테고리의 다른 글
HttpURLConnection을 이용한 Http 클라이언트 (0) 2020.02.22 자바 네트워크 프로그램, 블록과 논블록 (0) 2020.02.22 자바 네트워크 프로그래밍, 동기와 비동기 (0) 2020.02.21