본문 바로가기

탐구생활/컴퓨터

CURL을 사용해 HTTPS 접근시 (error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed) 해결법

다음과 같은 메시지를 출력하며 HTTPS 접속에 문제가 있는 경우
 
 SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

1. 빨리 고치기

해당 접속을 만드는 곳에서 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
옵션을 추가해주면 된다.

보안에 문제가 생길 수 있다. 간단한건 그냥 이렇게 하겠지만..

2.  제대로 고치기

1) 먼저 접속을 연결할 서버의 인증서를 저장한다.
2) 저장된 인증서를 다음의 옵션으로 가리킨다. 
curl_setopt($curl, CURLOPT_CAINFO, getcwd() . "/www.testserver.com.cer");
3) 접속을 시도해본다.

* 만약 3)의 과정에서  
 
error setting certificate verify locations: CAfile: /home/someuser/public_html/php/www.testserver.com.cer CApath: /etc/ssl/certs 

 와 같은 에러를 만난다면 /etc/ssl/certs의 퍼미션을 755로 조정하자.