2011-03-26 63 views
12

我试图运行带有Facebook的PHP SDK中的例子错误,但是我发现了以下错误:Facebook的PHP SDK给

Fatal error: Uncaught CurlException: 60: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed thrown in C:\wamp\www\fb\src\facebook.php on line 614

任何想法我做错了吗?

回答

24

问题是卷曲尚未配置为信任服务器的HTTPS证书,您可以通过添加这行代码解决这个问题:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
加入这行代码的
+9

这非常有帮助,特别是那些在本地测试Facebook应用的人!为了做到这一点,我不得不添加$ opts [CURLOPT_SSL_VERIFYPEER] = false;在curl_setopt_array($ ch,$ opts)之前的935行的base_facebook.php中; – 2012-11-29 01:29:30

+0

@BryanGentry是否建议在我的网站投入生产时删除该代码行? – Obay 2013-03-03 03:17:57

+0

我会建议删除它的现场制作应用程序。 – 2013-03-03 12:33:09

3

何锺泰答案正常工作:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

只要确保新的Facebook SDK有它的 “Facebook_base” 文件之前:

$result = curl_exec($ch); 

谢谢。

+0

此答案更简洁并且有效。 – 2012-12-06 09:02:37

1

另一种方法是添加此行,是同样的建议为其他答复,但在一个行,确保包括了Facebook SDK第一

Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; 
2

找到这一行

和紧随其后它添加:

$ opts [CURLOPT_SSL_VERIFYPEER] = false;

4

我刚刚有同样的问题,禁用同行验证在我的情况下是不可接受的。 我更新了fa_ca_chain_bundle.crt文件(从facebook's gitbub),它现在可以工作。

问候, 马立克

+1

我同意。禁用SSL验证是一个可怕的想法。 – TheJosh 2014-07-24 04:46:59

1

我有同样的问题,你只需要更新CRT文件,您可以在这里找到 https://raw.githubusercontent.com/facebook/facebook-php-sdk/master/src/fb_ca_chain_bundle.crt

CRT的文件是文件的同一文件夹内那会给你那个错误

+0

@ColonelThirtyTwo在这种情况下,它需要一个加密的.crt文件来解决这个问题,除了链接到外部的某个地方,他不能真正分享它,他给出的链接来自Facebook的官方sdk,它不太可能会下降 – 2014-08-05 10:38:53