Currently, I am doing a project on laravel5.
I use socialize for Facebook authentication,But I got cURL error Mentioned below.
RequestException in CurlF
well it may sometimes be confusing. when you check the php.ini
file you will see ;curl.cainfo = “certificate path\cacert.pem”
you have to note there is a semicolon in front. remove that and all the quotes marks, and simple put the file path to look like this
curl.cainfo = C:\xampp\php\extras\ssl\cacert.pem
as you can see my cacert.pem
is in the path C:\xampp\php\extras\ssl\cacert.pem thats where it should be . save and restart your server.
Windows : php.ini
and worked fine
For anyone pulling their hair out saying "I'VE DOWNLOADED A PRISTINE cacert.pem FILE, PUT IT IN THE CORRECT LOCATION, SET curl.cainfo CORRECTLY, AND RESTARTED MY APACHE SERVER BUT IT JUST DOESN'T WORK!?!?"... If you're using php-fpm then service apache2 restart
and service apache2 reload
will not update the reference and you'll continue to get error 60. If you intentionally point curl.cainfo to a bad path, you will not get the expected error 77 (first clue).
To restart php-fpm and update that reference (without rebooting the whole server), use service php-fpm restart
or service php5-fpm restart
or service php7-fpm restart
or service php7.0-fpm restart
, etc, depending on your php version. Hope this helps save someone time.
After so much of research i found the best solution for this. You just need to make verification false in the vendor/guzzlehttp/guzzle/src/Client.php file .
$defaults = [
'allow_redirects' => RedirectMiddleware::$defaultSettings,
'http_errors' => true,
'decode_content' => true,
'verify' => true, // make this false
'cookies' => false,
'idn_conversion' => true,
];
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
I just spent a number of hours grappling with this. The correct answer is
"indeed to put the cacert.pem file and amend the php.ini file to match as suggested by Moez above. ..... but I kept on getting CURL error 60's The trick was getting a clean copy of the PEM file! Any method involving windows notepad or other editors corrupts the file and gives the cURL error 60 etc. Finally I found https://gist.github.com/VersatilityWerks/5719158/download and downloaded a tar file with a clean copy of the cacert.pem file ...... it then all worked perfectly."
And since you are working on Windows, this could be the problem.
While on local-host with Laravel you can easily bypass cURL error.
navigate to Client.php file (vendor\guzzlehttp\guzzle\src\Client.php)
Change "verify" to false
$defaults = [
'allow_redirects' => RedirectMiddleware::$defaultSettings,
'http_errors' => true,
'decode_content' => true,
'verify' => false,
'cookies' => false
];