Windows 下 PHP 请求报 cURL error 60:unable to get local issuer certificate 的解决方法

Windows PHP 出现 cURL error 60 的解决方法

在 Windows 上调用curl调用某个接口时出现 cURL error 60: SSL certificate OpenSSL verify result: unable to get local issuer certificate (20) (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://xxx.com/,通常是 PHP/cURL 找不到可信的 CA 根证书,导致 HTTPS 证书链验证失败。

一、下载证书

从 curl 官方下载 cacert.pem,保存到固定目录,例如:

C:\php\extras\ssl\cacert.pem

二、修改 php.ini

先执行 php --ini,确认 PHP 实际加载的配置文件,然后加入:

curl.cainfo = "C:/php/extras/ssl/cacert.pem"
openssl.cafile = "C:/php/extras/ssl/cacert.pem"

三、重启并验证

保存后结束所有 php-cgi.exe 进程,然后重新网站中操作应该就正常了。