이야기박스
SSLProtocolException: handshake alert: unrecognized_name 본문
Computer & Data/Network
SSLProtocolException: handshake alert: unrecognized_name
박스님 2018. 8. 22. 14:38반응형
"SSLProtocolException: handshake alert: unrecognized_name"
https api를 사용하려고 하던 차에 발생한 에러였다.
발생 배경
- 요청을 통해 IP를 해당 API Server에 등록
- 웹 브라우저를 통한 요청은 잘 이루어짐
- 포스트맨을 이용한 요청도 문제 없음
- 타 프로그램을 통한 요청은 위의 에러 발생 ( 생자바 프로그램, embulk )
구글 검색을 하다보니 SNI extension 옵션을 꺼주면 해결될 수 있다고 함.
< SNI extension 옵션 끄는 방법 >
1. jvm args 로 제공
-Djsse.enableSNIExtension=false
2. 코드상에서 runtime 중 실행
System.setProperty("jsse.enableSNIExtension", "false");
두 방법 모두 효과적이었다.
그렇다면, SNI extension이란 무엇일까?
우선 SNI (Server Name Indication)
SNI란 직역하면 서버 이름 지정이다. TLS 프로토콜의 확장형이라고 이해하면 되겠다.
handshake 과정에서 웹브라우저의 호스트명을 지정해주는 과정이다.
SNI extension은 이 과정을 나타내는 것 같다. (자세히 못읽어봄)
그렇다면 문제는 왜 발생했을까??
추측
- TLS 접근만 했으면 문제 없이 통과됬을 것.
- Api Server가 SNI 접근을 지원하지 않아서 문제 되었을것이다.
앞으로 방향성
SNI, TLS 개념을 좀 더 깊게 공부해 볼 것
참조
반응형
'Computer & Data > Network' 카테고리의 다른 글
netty-grpc ssl 통신 인증 문제 (0) | 2018.09.07 |
---|---|
tcp/ip 네트워크 스택 (0) | 2018.09.06 |
서브넷 마스크(Subnetmask) (0) | 2017.11.24 |
흐름 제어(Flow Control) & 혼잡 제어(Congestion Control) (0) | 2017.11.24 |
네트워크) 기말 시험공부 - 주관식 (0) | 2017.06.18 |