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

我尝试将带有正确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

我需要从中获取access_token,但需要返回FALSE并curl_error()打印下一条消息:

60: SSL certificate problem: self signed certificate in certificate chain

我的代码是:

    // create curl resource

$ch = curl_init();

// set url

curl_setopt($ch, CURLOPT_URL, $url);

//return the transfer as a string

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// $output contains the output string

$output = curl_exec($ch);

if ( ! $output) {

print curl_errno($ch) .': '. curl_error($ch);

}

// close curl resource to free up system resources

curl_close($ch);

return $output;

当我手动移动到上面的链接时,我会很好地获得access_token。为什么卷曲不起作用?请帮助。

回答:

建议禁用的答案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

如果要在运行时进行设置,请使用:

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

以上是 卷曲错误60,SSL证书问题:证书链中的自签名证书 的全部内容, 来源链接: utcz.com/qa/408392.html

回到顶部