it-roy-ru.com

Как устранить ошибку 60 cURL: SSL-сертификат в Laravel 5 во время аутентификации Facebook

В настоящее время я делаю проект на 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)

Я искал в интернете и сделал следующие изменения, но не помог

  • скачанный файл cart.pem
  • установить путь "curl.cainfo =" C:\xampp\cacert.pem "
  • также раскомментируйте "extension = 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);
}
8
Nilesh

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, это может быть проблемой.

19
Curos

На локальном хосте с Laravel вы можете легко обойти ошибку cURL.

перейдите к файлу Client.php (vendor\guzzlehttp\guzzle\src\Client.php)

Измените «проверить» на false

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

Windows: php.ini enter image description here

и работал нормально

4
Hashmat Waziri

Для тех, кто дергает себя за волосы, говоря: «Я ЗАГРУЗИЛ ФАЙЛ PRISTINE 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. Надеюсь, это поможет сэкономить время.

1
Matt Rabe

ну иногда это сбивает с толку. когда вы проверяете файл 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
Fillz Adebayo