最近我在用PHP cURL做微信开发的时候,请求接口报错如下:
cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
中文翻译
cURL错误60:SSL证书问题:无法获得本地颁发者证书(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)
原因:
导致该问题的原因在于没有配置curl.cainfo,该配置位于php.ini中。
解决方法
既然报错都说了原因,解决起来就简单多了,具体如下:
1、下载cacert
下载地址:https://curl.haxx.se/ca/cacert.pem
2、修改 php.ini , 并重启
curl.cainfo="真实路径/cacert.pem"
注意事项:
需要开启 php_curl、php_openssl 扩展;
如果是用php curl() 方法的话。可以 关闭ssl证书校验:
<?php
// 创建curl资源
$ch = curl_init();
// 设置url
curl_setopt($ch, CURLOPT_URL, "https://www.test.com");
// 将Transfer作为字符串返回
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 关闭SSL验证
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// 执行并输出
$output = curl_exec($ch);
// 查看错误
$error = curl_error($ch);
echo $error;
// 释放curl资源
curl_close($ch);