2015-06-22 41 views
8

目前,我正在laravel5上做一個項目。如何解決cURL錯誤60:Laravel 5中的SSL證書同時進行Facebook身份驗證

我使用socialize進行Facebook身份驗證,但是我在下面提到了cURL錯誤。

RequestException in CurlFactory.php line 162: 
cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) 

我已經搜索互聯網上,做了以下的變化,但並沒有幫助

  • 下載cart.pem文件
  • 集路徑 「curl.cainfo =」 C:\ XAMPP \ CACERT。 PEM」
  • 也取消註釋 「擴展名= php_curl.dll」

我的代碼在控制器

public function fb() 
{ 
    return Socialize::with('facebook')->redirect(); 
} 
public function cb() //callback for facebook 
{ 
    $user = Socialize::with('facebook')->user(); 
    var_dump($user); 
} 
+0

https://stackoverflow.com/questions/39686341/curl-error-60-ssl-certificate-unable-to-get-local-issuer-certificatetried-ever/44830568#44830568 – tolgatasci

回答

17

https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate

https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate/replies/52954

我只花了幾個小時對付這一問題。正確的答案是

「確實要把cacert.pem文件和修改php.ini文件以符合上面提到的Moez .....但是我一直在CURL錯誤60的問題上獲取技巧是越來越一個乾淨的PEM文件副本!任何涉及Windows記事本或其他編輯器的方法都會破壞文件並給出cURL錯誤60等。最後,我找到https://gist.github.com/VersatilityWerks/5719158/download並下載了一個tar文件,其中包含cacert.pem文件的乾淨副本....然後它完全運作。「

而且由於您在Windows上工作,這可能是問題所在。

+0

Where put this.pem file? –

+0

@DanielAccorsi你可以把它放在任何地方,但它應該是可讀的php解釋器。 – Curos

+0

@Curos,如何確保它可讀取PHP解釋器... ??? –

4

的Windows:php.ini中enter image description here

和本地主機與Laravel上工作得很好

+0

cURL錯誤77:錯誤設置證書驗證位置: CAfile: C:\ xampp \ php \ cacert.pem CApath:none(請參閱http://curl.haxx.se/libcurl/c/libcurl-errors.html) – 151291

6

雖然你可以很容易地繞過捲曲的錯誤。

導航到Client.php文件(供應商\ guzzlehttp \狂飲\ SRC \ Client.php)

變化 「驗證」 爲假

$defaults = [ 
     'allow_redirects' => RedirectMiddleware::$defaultSettings, 
     'http_errors'  => true, 
     'decode_content' => true, 
     'verify'   => false, 
     'cookies'   => false 
    ]; 
0

以及它有時可以混淆。當你檢查php.ini文件時,你會看到;curl.cainfo = 「certificate path\cacert.pem」你必須注意前面有一個分號。刪除那個和所有的引號,並簡單地把文件路徑看起來像這樣 curl.cainfo = C:\xampp\php\extras\ssl\cacert.pem,因爲你可以看到我的cacert.pem位於路徑C:\ xampp \ php \ extras \ ssl \ cacert.pem這就是它應該在的位置。保存並重新啓動服務器。

0

對於任何人拔他們的頭髮說:「我下載了一個PRESTINE cacert.pem文件,把它放在正確的位置,設置curl.cainfo正確,並重新啓動我的APACHE服務器,但它只是不工作!? !?」 ......如果您使用的是php-fpm,那麼service apache2 restartservice apache2 reload將會是而不是更新引用並且您將繼續得到錯誤60.如果您故意將curl.cainfo指向不良路徑,則不會得到預期的錯誤77第一線索)。

要重新啓動的php-fpm的和更新的參考(無需重新啓動整個服務器),使用service php-fpm restartservice php5-fpm restartservice php7-fpm restartservice php7.0-fpm restart,等等,這取決於你的PHP版本。希望這有助於節省時間。

相關問題