더보기
Netty Http Client로 HTTP를 제공하는 서버에 HTTPS로 호출된 케이스가 있었는데, 이때 발생했던 에러에 대해 더 자세히 살펴보겠습니다.
1. 에러 발생
not an SSL/TLS record: 485454502f312e3120343030200d0a5472616e736665722d456e636f64696e673a206368756e6b65640d0a446174653a204672692c203239204e6f7620323032342030333a31313a353820474d540d0a436f6e6e656374696f6e3a20636c6f73650d0a0d0a300d0a0d0a
2. 에러 분석
16진수(Hexadecimal)로 인코딩된 데이터
- 485454502f312e3120343030200d0a5472616e736665722d456e636f64696e673a206368756e6b65640d0a446174653a204672692c203239204e6f7620323032342030333a31313a353820474d540d0a436f6e6e656374696f6e3a20636c6f73650d0a0d0a300d0a0d0a
- 위의 에러 발생시 찍혔던 data는 16진수로 인코딩 데이터였습니다.
ASCII로 변환
- 위의 데이터를 ASCII로 변환하면 평문 HTTP 응답을 나타냅니다.
HTTP/1.1 400
Transfer-Encoding: chunked
Date: Fri, 29 Nov 2024 03:06:33 GMT
Connection: close
0
Provider 서버 호출
- curl 로 http를 지원하는 Provider의 서버주소를 https로 호출해보면 좀더 문제를 명확하게 확인할 수 있습니다.
- **error:0A00010B:SSL routines::wrong version number**는 클라이언트가 SSL/TLS 프로토콜을 통해 서버와 통신하려 했지만, 서버가 SSL/TLS 핸드셰이크를 지원하지 않거나 잘못된 응답을 반환했을 때 발생하는 에러입니다.
- curl로 Provider 서버를 http로 호출하면, 서버에서 응답은 오는 것을 확인할 수 있습니다.
3. 에러 해결
- 해당 Provider 서버 호출 하는 부분을 찾아 https → http로 수정하면 됩니다.