PHP CURL GET HTTPS报错SSL certificate problem: unable to get local issuer certificate

请求HTTP

使用php curl获取http资源,不会报错。

如下:

// 创建curl资源

$ch = curl_init();

// 设置url

curl_setopt($ch, CURLOPT_URL, "baidu.com");

// 将Transfer作为字符串返回

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// 执行并输出

$output = curl_exec($ch);

// 查看错误

$error = curl_error($ch);

echo $error;

// 释放curl资源

curl_close($ch);

请求HTTPS

但是如果请求HTTPS的时候,默认会报错:

SSL certificate problem: unable to get local issuer certificate

这是因为HTTPS需要证书认证,如果本地没有装,就会报这个错误,我们可以把这个认证关掉。

// 创建curl资源

$ch = curl_init();

// 设置url

curl_setopt($ch, CURLOPT_URL, "https://github.com/search?q=react");

// 将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); 

配置HTTS

另外的一种解决办法,就是配置上HTTPS,找到证书:

到http://curl.haxx.se/ca/cacert.pem

下载pem文件。

在PHP配置文件(php.ini)里配置PEM文件目录位置。

curl.cainfo = "path\to\cacert.pem"


原文链接:https://blog.csdn.net/lilongsy/java/article/details/85012503

你可能感兴趣的:(PHP CURL GET HTTPS报错SSL certificate problem: unable to get local issuer certificate)