当前位置: 首页 > 知识库问答 >
问题:

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

宗政霄
2023-03-14

我尝试将带有正确应用程序ID、应用程序机密等的curl请求发送到

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

我需要从中获取访问令牌,但获取FALSE和curl\u error()print next message,否则:

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;

当我手动移动到上面的链接时,我很好地获得了访问权。为什么卷曲不起作用?请帮忙。

共有3个答案

吉俊德
2023-03-14

如果系统中未正确安装SSL证书,则可能会出现以下错误:

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

您可以通过以下方式解决此问题:

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

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

更新你的php。ini文件并配置该文件的路径:

路奇
2023-03-14

此解决方法很危险,不建议:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

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

实际上,您只需要一个最新的CA根证书捆绑包。安装更新的软件非常简单,如下所示:

>

  • 下载最新的cacert。pem来自cURL网站的文件和

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

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

    就这样!

    保持安全。

  • 史修谨
    2023-03-14

    不应接受建议禁用CURLOPT\u SSL\u VERIFYPEER的答案。问题是“为什么卷曲不起作用”,正如Martijn Hols正确指出的那样,它是危险的。

    该错误可能是由于没有最新的CA根证书束造成的。这通常是一个文本文件,其中包含一组加密签名,curl使用这些签名来验证主机的SSL证书。

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

    然后设置php.ini:

    curl.cainfo = <absolute_path_to> cacert.pem
    

    如果要在运行时进行设置,请使用(其中$ch=curl_init();):

    curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");
    
     类似资料:
    • 问题内容: 我尝试将带有正确APP_ID,APP_SECRET等的curl请求发送到 我需要从中获取access_token,但需要返回FALSE并打印下一条消息: 我的代码是: 当我手动移动到上面的链接时,我会很好地获得access_token。为什么卷曲不起作用?请帮助。 问题答案: 建议禁用的答案不被接受。问题是“为什么它不适用于cURL”,正如Martijn Hols正确指出的那样,这很危

    • 我最近升级了Inteliij IDEA 2019.2,如果我尝试从IDE中提取Git,我会发现以下错误:无法访问'https://github.xxx.com/app-Hello-USD/DGS.git/“:SSL证书问题:证书链中的自签名证书。 有人能帮我什么选项,我必须启用。 谢谢

    • 问题内容: 当尝试使用其PHP库通过Twilio发送消息时,我正在为这个错误而苦苦挣扎: 我在Windows 7上使用了wamp。 我当然找到了所有其他有关证书错误的信息。据我所知,通常更新或添加文件即可解决该问题。但是,即使这样做,我仍然遇到相同的错误。 就像这里所做的健全性检查一样,这正是我所做的: 从此处下载了最新的证书:http : //curl.haxx.se/ca/cacert.pem

    • 问题内容: 我遇到客户端https请求的问题。 片段可以如下所示: 我得到的是错误:证书链中的自签名证书。 使用邮递员时,我可以导入客户端证书和密钥,并且可以毫无问题地使用它。有没有可用的解决方案?我还希望对邮递员如何处理证书和工作方式有所了解。 问题答案: 根据您的问题,我想您正在使用SSL通讯的自签名证书进行开发。 如果是这种情况,请在您正在运行节点的任何地方或直接使用 这指示节点允许不信任的

    • 我快被这个问题弄疯了。我在Laravel上有两个站点在https上互相调用(用OAUTH2登录,passport/sociate)。两者都安装在我的本地开发服务器上,在MAMP,MAMP自动签名的证书。 我到处都能找到这个解决方案:把cacert.pem文件放在某个地方,把路径写在php.ini中 完成,Apache重新启动,设置正确地出现在两个站点的phpinfo()中。然而,错误依然存在。有人

    • 我们在amazon ec2(backend.abc.com和frontend.abc.com)上运行2个应用程序。对于该应用程序,我们使用了付费SSL证书。该证书的有效期为2021年6月。但今天,我们犯了一个错误- 我们检查证书到期日期,但没有问题(2021年6月)。然后我们关注以下问题:Thread-curl:(60)SSL证书问题:无法获得本地颁发者证书(@Dahomz回答) 之后,当我们通过