해당 에러가 발생했다
1. 원인 : 서버와 자바 클라이언트 간의 tls 버전이 맞지않음
2. 환경 : 서버 - TLSv1.0, TLSv1.1, TLSv1.2 지원
자바7 - TLSv1.0, TLSv1.1
서버는 v1.2를 지원하는데 자바7은 v1.2를 지원하지 않기 때문에 해당 에러가 발생하였다.
3. 해결방법: (1) 자바 8로 업그레이드 한다.
(2) 자바에 system properties 에 v1.2를 사용하도록 명시해준다.
java -Dhttps.protocols=TLSv1.2 -jar your-application.jar
(3) 코드에서 명시적으로 SSLContext 및 SSLSocketFactory를 설정한다.
나는 (3)번 방법을 선택하였다.
4. 추가 코드:
// SSL 설정
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
} };
SSLContext sc = SSLContext.getInstance("TLSv1.2"); // TLSv1.2로 변경
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
해당 메서드에 위 SSL,TLS 설정을 추가하였더니 해결되었다.
'ERROR FIX' 카테고리의 다른 글
org.apache.jsp.WEB_002dINF.views.index_jsp]org.apache.jasper.JasperException: java.lang.ClassNotFoundException (0) | 2024.06.22 |
---|---|
외부 톰캣 세팅시 artifact(war exploded) 자동 생성 안될때 (1) | 2024.06.15 |
인텔리제이 롬복 에러 Cause: class lombok.javac.apt.LombokProcessor (0) | 2024.03.26 |
인텔리제이 프로젝트 안열림 (0.1초만에 닫힘) (2) | 2024.03.19 |
스프링 프로젝트 실행시 열리는 기본주소창 설정 (0) | 2024.03.14 |
댓글