2011-03-26 100 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