[英]How to solve cURL error 60: SSL certificate in Laravel 5 while Facebook authentication
目前,我正在做一個關於 laravel5 的項目。
我使用 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)
我在 inte.net 上搜索並做了以下更改但沒有幫助
我的代碼在 controller
public function fb()
{
return Socialize::with('facebook')->redirect();
}
public function cb() //callback for facebook
{
$user = Socialize::with('facebook')->user();
var_dump($user);
}
我只是花了幾個小時來解決這個問題。 正確答案是
“確實把 cacert.pem 文件並修改 php.ini 文件以匹配上面 Moez 的建議......但我不斷收到 CURL 錯誤 60 的訣竅是獲得 PEM 文件的干凈副本!任何涉及 Windows 記事本或其他編輯器的方法會損壞文件並給出 cURL 錯誤 60 等。最后我找到了https://gist.github.com/VersatilityWerks/5719158/download並下載了一個帶有 cacert.pem 干凈副本的 tar 文件文件......然后一切正常。”
而且由於您在 Windows 上工作,這可能是問題所在。
在使用 Laravel 的本地主機上,您可以輕松繞過 cURL 錯誤。
導航到 Client.php 文件 (vendor\\guzzlehttp\\guzzle\\src\\Client.php)
將“驗證”更改為假
$defaults = [
'allow_redirects' => RedirectMiddleware::$defaultSettings,
'http_errors' => true,
'decode_content' => true,
'verify' => false,
'cookies' => false
];
經過如此多的研究,我找到了最好的解決方案。 您只需要在 vendor/guzzlehttp/guzzle/src/Client.php 文件中將驗證設為 false。
$defaults = [
'allow_redirects' => RedirectMiddleware::$defaultSettings,
'http_errors' => true,
'decode_content' => true,
'verify' => true, // make this false
'cookies' => false,
'idn_conversion' => true,
];
對於任何人都說“我已經下載了一個原始的 cacert.pem 文件,把它放在正確的位置,正確地設置 curl.cainfo,然后重新啟動我的 APACHE 服務器,但它根本不起作用!?!?”。 .. 如果您使用的是 php-fpm,那么service apache2 restart
和service apache2 reload
將不會更新引用,您將繼續收到錯誤 60。如果您故意將 curl.cainfo 指向錯誤路徑,您將無法獲得預期錯誤 77(第一條線索)。
要重新啟動 php-fpm 並更新該引用(無需重新啟動整個服務器),請使用service php-fpm restart
或service php5-fpm restart
或service php7-fpm restart
或service php7.0-fpm restart
等,具體取決於您的 php版本。 希望這有助於節省某人的時間。
好吧,它有時可能會令人困惑。 當你查看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 這就是它應該在的地方。 保存並重新啟動您的服務器。
您可以禁用 SSL
composer config disable-tls true
composer config secure-http false
composer clearcache
之后執行= composer install
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.