未捕获的 CurlException:77:设置证书验证位置时出错
Posted
技术标签:
【中文标题】未捕获的 CurlException:77:设置证书验证位置时出错【英文标题】:Uncaught CurlException: 77 : error setting certificate verify locations 【发布时间】:2013-02-15 10:57:59 【问题描述】:我不断收到同样的错误。我刚刚安装了 SSL,没有运气。我已经查看了所有其他帖子,但似乎没有一个解决方案对我有用。
有人知道我应该怎么做吗?
致命错误:未捕获的 CurlException:77:错误设置证书 验证位置:CAfile:/etc/pki/tls/certs/ca-bundle.crt CApath: 没有扔进去 /home/acmesoft/public_html/Oddsmaker/php_sdk/base_facebook.php 上线 第977章
if ($result === false)
$e = new FacebookApiException(array(
'error_code' => curl_errno($ch),
'error' => array(
'message' => curl_error($ch),
'type' => 'CurlException',
),
));
curl_close($ch);
throw $e;
curl_close($ch);
return $result;
【问题讨论】:
看起来重复,试试看:***.com/questions/8994059/… 【参考方案1】:Riyanto Wibowo 的反应很危险,因为您实际上是在关闭 SSL。小心走那条路。来自comment on the php manual:
请大家停止将 CURLOPT_SSL_VERIFYPEER 设置为 false 或 0。如果您的 PHP 安装没有最新的 CA 根证书包,请在 curl 网站上下载并保存在您的服务器上:
http://curl.haxx.se/docs/caextract.html
然后在您的 php.ini 文件中设置它的路径,例如在 Windows 上:
curl.cainfo=c:\php\cacert.pem
关闭 CURLOPT_SSL_VERIFYPEER 允许中间人 (MITM) 攻击,这是您不想要的!
我会将此作为评论发布,但我没有足够的声誉。
【讨论】:
最好危险地让该死的东西工作,然后不要让它工作。人们不得不做这些废话来突破功能阻力是 curl.haxx.se(或制造它的人)的错,而不是他们自己。【参考方案2】:我和你有同样的错误,这个问题已经解决了,我只放了这2行
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;
在您的 Facebook 应用定义之后
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'xxx',
'cookie' => true,
'perms' => 'publish_stream,read_stream,email',
'domain' => 'example.com'
))
【讨论】:
这出现在新下载的 facebook php sdk 中,例如今天的日期。我使用了以前下载的副本,可能是 4 个月前的,并且没有收到这样的错误......无论如何。你的解决方法对我很有效。 这个答案要小心;请参阅下面的爱国者回答。这是一个糟糕的答案,因为它会将您的应用暴露给中间人 (MITM) 攻击。【参考方案3】:您只需要将 fb_ca_chain_bundle.crt 与 base_facebook.php 放在同一文件夹中。你可以在这里得到它:https://github.com/facebook/facebook-php-sdk/blob/master/src/fb_ca_chain_bundle.crt
【讨论】:
以上是关于未捕获的 CurlException:77:设置证书验证位置时出错的主要内容,如果未能解决你的问题,请参考以下文章
Facebook CurlException 3 没有设置 URL
CurlException: [curl] 51: SSL: 证书验证失败
Not hacking CurlException: 60 (cURL SSL Certificate Verification)
Bootstrap 设置错误:未捕获 ReferenceError:未定义 jQuery 和未捕获错误:Bootstrap 的 JavaScript 需要 jQuery