繁体   English   中英

"Curl 错误 60,SSL 证书问题:证书链中的自签名证书"

[英]Curl error 60, SSL certificate issue: self signed certificate in certificate chain

我尝试使用正确的 APP_ID、APP_SECRET 等发送 curl 请求到

  https://oauth.vk.com/access_token?client_id=APP_ID&client_secret=APP_SECRET&code=7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479e52a&redirect_uri=REDIRECT_URI 

不应接受建议禁用CURLOPT_SSL_VERIFYPEER答案。 问题是“为什么它不适用于 cURL”,正如 Martijn Hols 正确指出的那样,这是危险的。

该错误可能是由于没有最新的 CA 根证书包引起的。 这通常是一个带有一堆加密签名的文本文件,curl 使用这些签名来验证主机的 SSL 证书。

您需要确保您的 PHP 安装包含这些文件之一,并且它是最新的(否则请在此处下载: http : //curl.haxx.se/docs/caextract.html )。

然后在 php.ini 中设置

curl.cainfo = <absolute_path_to> cacert.pem

如果您在运行时设置它,请使用 (where $ch = curl_init(); ):

curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");

这种解决方法很危险不推荐

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

禁用 SSL 对等验证不是一个好主意。 这样做可能会将您的请求暴露给 MITM 攻击者。

事实上,您只需要一个最新的 CA 根证书包。 安装更新的就像这样简单:

  1. cURL 网站下载最新的cacert.pem文件和

  2. 在 php.ini 文件中设置它的路径,例如在 Windows 上:

    curl.cainfo=c:\\php\\cacert.pem

就是这样!

保持安全。

重要提示:这个问题让我疯狂了几天,我无法弄清楚我的 curl 和 openssl 安装发生了什么。 我终于发现这是我的中级证书(在我的例子中是 GoDaddy)过期了。 我回到我的 Godaddy SSL 管理面板,下载了新的中间证书,问题就消失了。

我相信这是你们中的一些人的问题。

显然,由于安全问题,GoDaddy 在某个时候更改了他们的中间证书,因为他们现在显示以下警告:

“请务必使用您下载的捆绑包中包含的新 SHA-2 中间证书。”

希望这对你们中的一些人有所帮助,因为我快疯了,这解决了我所有服务器上的问题。

如果您的系统中未正确安装 SSL 证书,您可能会收到此错误:

cURL 错误 60:SSL 证书问题:无法获取本地颁发者证书。

您可以按如下方式解决此问题:

https://curl.haxx.se/ca/cacert.pem下载包含更新的证书列表的文件

将下载的cacert.pem文件移动到系统中的某个安全位置

更新您的php.ini文件并配置该文件的路径:

为了添加更具体的答案,我在使用 PHP HTTP 请求包 Guzzle v7 时遇到了这个问题。 Guzzle 允许您像这样绕过它:

use GuzzleHttp\Client;

$this->client = new Client([
    'verify' => false,
]);

错误:SSL 证书问题:证书链中的自签名证书

Solution:
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);    
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM