programing

서버 이름 표시(SNI) 구현 방법

prostudy 2022. 8. 8. 14:54
반응형

서버 이름 표시(SNI) 구현 방법

C 또는 C++의 OpenSSL에서 서버 이름 표시(SNI)를 구현하는 방법

실제 사용 가능한 예가 있습니까?

클라이언트측에서는,SSL_set_tlsext_host_name(ssl, servername)SSL 접속을 개시하기 전에, 를 참조해 주세요.

서버 측에서는 조금 더 복잡합니다.

  • 추가 설정SSL_CTX()서로 다른 증명서마다
  • 서버명 콜백을 각각에 추가합니다.SSL_CTX()사용.SSL_CTX_set_tlsext_servername_callback();
  • 콜백에서 클라이언트 제공 서버 이름을 가져옵니다.SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name)올바른 것을 알아내다SSL_CTX그 호스트명을 사용하고 나서, 그 호스트명을 사용하고,SSL그것에 반대하다SSL_CTX와 함께SSL_set_SSL_CTX().

s_client.c그리고.s_server.c의 파일apps/OpenSSL 소스 배포의 디렉토리는 이 기능을 구현하므로 이 기능을 수행하는 방법을 확인할 수 있는 좋은 리소스입니다.

언급URL : https://stackoverflow.com/questions/5113333/how-to-implement-server-name-indication-sni

반응형