【PHP】使用CURL请求HTTPS接口时报错,curl: (60) SSL certificate problem: unable to get local issuer certificate
·
目录
一、错误原因
我们在使用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
或者手动下载
2、指定使用的CA证书路径,证书路径为绝对路径!
curl_setopt($ch, CURLOPT_CAINFO, 'C:/phpstudy_pro/WWW/child/public/cacert.pem');
方法一不推荐,方法二推荐
更多推荐



所有评论(0)