윈도우에서 아파치에 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 루트 인증서 번들을 다운로드 받는 방법은 다음과 같습니다.
- 원하는 위치에서 cmd창을 연다. (저는 php가 설치된 폴더에서 진행하였음)
- 다음의 명령어를 입력한다.
curl -k -O -L https://curl.haxx.se/ca/cacert.pem
위 명령어를 입력하면 해당 디렉토리에 cacert.pem이 다운로드됩니다.
2. php.ini 파일에 cacert.pem 연결
먼저 아래 사진처럼 다운로드 받은 cacert.pem 파일의 경로를 복사해주세요.
이어서 php.ini파일에 해당 CA 루트 인증서 번들을 인식시켜줘야합니다.
- php.ini파일을 열어 [openssl] 블록을 찾습니다.
- openssl.cafile = “C:\php833\cacert.pem”를 입력해주세요.
- 큰따옴표로 감싸야합니다. 큰따옴표가 두번입력되지 않도록 주의해주세요.
- 저장 후 아파치(httpd)를 재시작합니다.
Openssl.CAfile 적용 확인
변경 후에 아파치[PHP – openssl – cafile]에 정상적으로 적용되었는 지 확인해봅시다.
phpinfo를 열어 openssl.cafile 항목에 위와 같이 정상적으로 지정한 경로가 입력되었는 지 확인해보세요. 정상적으로 경로가 입력되었다면 CURL 60에러가 사라졌을 것입니다.
- 만약 위 phpinfo 확인하는 방법을 모른다면 [여기]를 클릭해보세요. 쉽고 빠르게 알려드려요.