윈도우 아파치 PHP cURL error 60: SSL certificate problem: unable to get local issuer certificate 해결 방법

윈도우에서 아파치에 PHP 파일을 연동해서 사용하고 있는데 cURL error 60: SSL certificate problem: unable to get local issuer certificate에러가 발생했어요. 사실 CURL 60번 인증서 에러는 정말 여러가지 상황에서 발생하는 에러에요. 제가 이번에 발생한 에러는 [루트 인증서 번들]이 없어서 발생한 문제였습니다. 따라서 번들을 새로 셋팅해주며 문제를 해결하였습니다.

현상

저는 윈도우 워드프레스 서버에 OpenSSL인증서를 연동시켜 놓은 상태인데요. 워드프레스 플러그인에서 서버에 CURL 명령을 날렸을 때 자꾸 위 인증서 에러가 발생하더라구요. 원인을 찾아보니 윈도우에서는 리눅스와 다르게 PHP를 직접 설치하였을 때 CA 루트 인증서 번들을 자동으로 찾지 못하더라구요. 저와 같은 문제를 겪으시는 분들을 위해 루트 인증서 번들을 다운받고 php.ini 파일에서 해당 파일 경로를 지정하여 해결하는 방법을 정리합니다.

CURL error 60: SSL Certificate problem 해결 방법

1. CA 루트 인증서 번들 다운로드

CA 루트 인증서 번들은 신뢰할 수 있는 기관들의 정보를 담고 있습니다. 이 번들 파일이 있어야 제가 https 통신을 위해 발급받은 인증서가 정말로 신뢰할 수 있는 인증기관이 발급한 인증서가 맞는 지 검사를 할 수 있어요.

CA 루트 인증서 번들을 다운로드 받는 방법은 다음과 같습니다.

  1. 원하는 위치에서 cmd창을 연다. (저는 php가 설치된 폴더에서 진행하였음)
  2. 다음의 명령어를 입력한다.
curl -k -O -L https://curl.haxx.se/ca/cacert.pem
CA 루트 인증서 번들 cacert.pem 다운로드 하기 위해 curl 명령어를 입력한 모습

위 명령어를 입력하면 해당 디렉토리에 cacert.pem이 다운로드됩니다.

2. php.ini 파일에 cacert.pem 연결

먼저 아래 사진처럼 다운로드 받은 cacert.pem 파일의 경로를 복사해주세요.

다운받은 cacert.pem 파일의 경로를 복사하는 사진

이어서 php.ini파일에 해당 CA 루트 인증서 번들을 인식시켜줘야합니다.

  1. php.ini파일을 열어 [openssl] 블록을 찾습니다.
  2. openssl.cafile = “C:\php833\cacert.pem”를 입력해주세요.
    • 큰따옴표로 감싸야합니다. 큰따옴표가 두번입력되지 않도록 주의해주세요.
  3. 저장 후 아파치(httpd)를 재시작합니다.

Openssl.CAfile 적용 확인

변경 후에 아파치[PHP – openssl – cafile]에 정상적으로 적용되었는 지 확인해봅시다.

phpinfo파일의 openssl.cafile에 cacert.pem 경로가 입력된 사진

phpinfo를 열어 openssl.cafile 항목에 위와 같이 정상적으로 지정한 경로가 입력되었는 지 확인해보세요. 정상적으로 경로가 입력되었다면 CURL 60에러가 사라졌을 것입니다.

  • 만약 위 phpinfo 확인하는 방법을 모른다면 [여기]를 클릭해보세요. 쉽고 빠르게 알려드려요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다