본문 바로가기
카카오 REST API & SDK/공통 사항

Curl error: SSL: no alternative certificate subject name matches target host name 'kauth.kakao.com'

by kakao-TAM 2021. 6. 21.

서버에 설치된 SSL 라이브러리가 오래된 경우 (OpenSSL / 0.9.8b) Curl 요청 시, 에러가 발생할 수 있습니다. 

 

서버에 요청을 보내면 보안 연결을 거칩니다. 이러한 연결은 방화벽을 통해 실행되어 DDoS와 같은 공격으로부터 서버를 안전하게 보호합니다. 이를 위해 SNI (Server Name Indication)라는 시스템을 사용합니다. IE6 이후의 모든 브라우저가이를 지원하며 2008 년 3 월 이후에 출시 된 모든 주요 CURL 버전이 이를 지원합니다.

 

서버 네임 인디케이션(Server Name Indication, SNI)은 컴퓨터 네트워크 프로토콜인 TLS의 확장으로, 핸드셰이킹 과정 초기에 클라이언트가 어느 호스트명에 접속하려는지 서버에 알리는 역할을 한다.[1] 이를 이용하면 같은 IP 주소 TCP 포트 번호를 가진 서버로 여러 개의 인증서를 사용할 수 있게 되고, 따라서 모든 사이트가 같은 인증서를 사용하지 않아도 동일한 아이피로 여러 HTTPS 웹사이트(또는 TLS 상에서 돌아가는 다른 서비스)를 운영할 수 있게 된다.

 

서버에서 그보다 오래된 소프트웨어를 계속 사용하고 있다면이 문제일 확률이 높습니다.

 

해결책

호스팅 제공 업체에 OpenSSL 라이브러리를 업데이트하도록 요청합니다. 사용되는 OpenSSL 버전은 SNI를 지원하는 1.0 이상이어야합니다.


SNI를 사용하려면 다음이 필요합니다.

  • 이를 지원하는 CURL 버전 (최소 7.18.1). CURL 7.18.1은 2008 년 3 월 30 일에 출시되었습니다.
  • 이 버전의 CURL은 기본적으로 TLS를 활성화하는 SNI (일반적으로 OpenSSL 1.0 이상)를 지원하는 라이브러리에 대해 컴파일되어야합니다.

버전에 문제가 없다면

1. ping과 traceroute 로 연결이 되는지 확인합니다.

ping kauth.kakao.com
traceroute kauth.kakao.com

2. curl 만 안되는 것이 아니라 ping과 traceroute도 안된다면

2.1. 네임서버문제이거나 

2.2.  kauth IP에 대한 outbound 방화벽 설정 확인 필요

ㄴ 203.133.166.32
ㄴ 27.0.237.15

 

댓글