目录

一、错误原因

二、解决方法

方法一:直接跳过SSL验证

方法二:为cURL提供一个有效的CA证书


一、错误原因

我们在使用HTTP通过CURL请求HTTPS的API接口时,有时候请求结果为空,打印错误原因提示:curl: (60) SSL certificate problem: unable to get local issuer certificate,导致这个错误发生的原因是cURL无法验证服务器的SSL证书,没有配置信任的服务器HTTPS验证,默认情况下,CURL请求会被认为不信任任何的服务器验证,所以在请求https接口时,https就无法请求的你的服务器。

使用curl_error()方法打印错误

var_dump(curl_errno($curl));

二、解决方法

方法一:直接跳过SSL验证

在CURL请求体中设置跳过SSL验证,这个方法比较直接但不安全,存在被攻击风险,

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

方法二:为cURL提供一个有效的CA证书

1、更新CA证数

使用命令下载

curl -cacert /path/to/root_ca.pem https://example.com

或者手动下载

https://curl.se/ca/cacert.pem

2、指定使用的CA证书路径,证书路径为绝对路径!

curl_setopt($ch, CURLOPT_CAINFO, 'C:/phpstudy_pro/WWW/child/public/cacert.pem');

方法一不推荐,方法二推荐

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐