[컴][php] cURL error 60: SSL certificate problem 해결방법




curl error 60

php 에서 curl 을 이용하는 경우에 아래같은 error 가 뜨는 경우가 있다.
"cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)"
https 로 request 를 할 때 발생한다. local 에 있는 ca 정보를 확인할 수 없어서이다. 그래서 이경우에는 ca 정보가 있는 파일(보통 cacert.pem) 의 경로를 지정해 줘야 한다.

이때 지정해 주는 방법은 2가지가 있다.
  1. curl_setopt 를 사용하는 법
  2. php.ini 의 calinfo 를 set 해주는 법


curl_setopt

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');

$json = curl_exec($ch);
curl_close($ch);


php.ini 설정

위의 글을 참고하면 된다. 대략적으로 정리하면.
  1. cacert.pem 을 copy : <php_path>\extras\ssl\cacert.pem
  2. php.ini 의 curl.cainfo 를 설정
    curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"
    ; php.ini
    curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"
  3. server 재시작


cacert.pem

cacert.pem 은 아래 경로에서 얻을 수 있다.



댓글 1개: