본문 바로가기

Language/Java / JSP

[Java] javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name

반응형


URLConnection을 이용하여 SSL이 적용된 웹 사이트를 읽어오는 부분을 작성했는데, 아래와 같은 오류가 발생한다.



javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name



해당 오류의 원인은 Java 1.7 bug 라는 내용을 외국 사이트에서 확인 .


사실 bug 라는 말은 맞지 않다. 1.7 부터는 SNI support의 부분이 기본적으로 enable 되어 있다는 것일뿐.




해당 버그를 피하기 위해선 다음과 같이 하면 된다.



호출하는 class 또는 jsp 파일에 다음 내용을 추가한다.


 System.setProperty("jsse.enableSNIExtension", "false") ; 




또는



JAVA_OPTS에 아래 옵션을 준다.


  JAVA_OPTS="-Djsse.enableSNIExtension=false"




나 같은 경우 첫번째 방법으로 했다가 어느날 갑자기 안되는 상황이 발생하였다. 그래서 톰캣을 재시작 했더니 정상작동.

기분이 찜찜하여 톰캣의 catalina.sh 파일에 JAVA_OPTS 도 추가해 줬다 ;;