지훈군의 IT&개발&문화&생활 블로그

[PHP] SSL 인증서 관련 CURL 35 에러 코드 발생하는 경우 본문

IT개발

[PHP] SSL 인증서 관련 CURL 35 에러 코드 발생하는 경우

지훈군 지훈군 2017.08.09 21:52

안녕하세요? 지훈군 입니다. 


최근에 각 서비스 업체별로 SSL 인증서를 갱신하는 경우가 종종 있습니다. 


그런데, SSL 규격이 달라지거나, 버전이 달라지는 경우가 종종 있는데요.


최근에 모 서비스 업체에서 12월 초에 SSL 인증서를 갱신했더라구요. 


갱신은 좋은데, 갱신하면서 인증서 버전이 달라졌는지, 기존에 연동해놓았던 서비스들이 동작에 이상이 생기더라구요. 동작에 문제가 있어, 확인을 해보니... API 를 요청하는 CURL 코드에서 35번 에러 발생(CURLE_SSL_CONNECT_ERROR (35))으로 동작이 종료되더라구요.


그래서 에러 번호가 어떤 내용인지 확인해보니...


http://php.net/manual/fr/function.curl-errno.php

SSL HANDSHAKE 에러라는 내용이 설명이 되어 있더라구요. 


일단, API 서버의 문제가 아니라, SSL 연결시 발생되는 문제로 확인이 되어, 

코드를 살펴보고 구글링을 하다보니... 


curl_setopt($chCURLOPT_SSLVERSION3);

CURL 코드 중에 위 코드가 문제의 원인이더라구요. 

SSL 버전이 있는데, API 서버에서는 이 버전이 4로 올려야 동작을 하더군요.

SSL 인증서의 규격과 종류가 최신 버전으로 올라가면서 발생한 일로 봐야 할것 같네요. 


해당 번호는 문서를 찾아보니... 

One of CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1),CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0(4), CURL_SSLVERSION_TLSv1_1 (5) or CURL_SSLVERSION_TLSv1_2 (6).


와 같이.. 0~6번까지 번호가 있구요. 


번호에 따라서 처리 방식이 각기 다르다고 합니다.

동일한 현상 있으신 분들 중에 PHP CURL 사용하시는 분들은 한번 확인을 해주시는게 좋겠습니다.


curl_setopt 문서를 참고해보시면 좀 더 자세한 설명이 나와 있으니 참고하시는게 좋겠네요. 


* 관련 문서 : http://php.net/manual/fr/function.curl-errno.php


감사합니다.

저작자 표시 비영리 변경 금지
신고
0 Comments
댓글쓰기 폼