Cómo resolver el error 60 de cURL: certificado SSL en Laravel 5 mientras se autentica en Facebook

Actualmente, estoy haciendo un proyecto en laravel5.

Uso socializar para la autenticación de Facebook, pero recibí el error de la CURL que se menciona a continuación.

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) 

He buscado en internet y he hecho los siguientes cambios pero no he ayudado

  • descargado archivo cart.pem
  • establecer ruta “curl.cainfo =” C: \ xampp \ cacert.pem ”
  • también descomentar “extension = php_curl.dll”

Mi código de en el controlador

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

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

Acabo de pasar una cantidad de horas lidiando con esto. La respuesta correcta es

“de hecho, para poner el archivo cacert.pem y corregir el archivo php.ini para que coincida con lo sugerido por Moez arriba … pero seguí obteniendo el error CURL de los 60. ¡El truco era obtener una copia limpia del archivo PEM! el método que incluye el bloc de notas de Windows u otros editores daña el archivo y le da el error 60 de CURL, etc. Finalmente, encontré https://gist.github.com/VersatilityWerks/5719158/download y descargué un archivo tar con una copia limpia de cacert.pem archivo …… entonces todo funcionó perfectamente “.

Y ya que estás trabajando en Windows, este podría ser el problema.

Mientras esté en el host local con Laravel, puede omitir fácilmente el error cURL.

navegue hasta el archivo Client.php (proveedor \ guzzlehttp \ guzzle \ src \ Client.php)

Cambia “verificar” a falso

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

Windows: php.ini introduzca la descripción de la imagen aquí

y funcionó bien

Para cualquier persona que se quite el pelo diciendo: “HE DESCARGADO UN PRISTINO” cacert.pem ARCHIVO, LO PONÉ EN LA UBICACIÓN CORRECTA, CONFIGURÉ curl.cainfo CORRECTAMENTE, Y REINICIE MI APACHE SERVIDOR PERO ¡¿¡NO FUNCIONA! .. Si está usando php-fpm, entonces el service apache2 restart y el service apache2 reload no actualizarán la referencia y continuará obteniendo el error 60. Si intencionalmente apunta curl.cainfo a una ruta incorrecta, no obtendrá la error esperado 77 (primera pista).

Para reiniciar php-fpm y actualizar esa referencia (sin reiniciar todo el servidor), use el service php-fpm restart o el service php5-fpm restart o el service php7-fpm restart o el service php7.0-fpm restart , etc., dependiendo de su php versión. Espero que esto ayude a ahorrar tiempo a alguien.

Bueno, a veces puede ser confuso. cuando verifique el archivo php.ini verá ;curl.cainfo = “certificate path\cacert.pem” tener en cuenta que hay un punto y coma al frente. elimine eso y todas las comillas, y simplemente ponga la ruta del archivo para que se vea así curl.cainfo = C:\xampp\php\extras\ssl\cacert.pem como puede ver, mi cacert.pem está en la ruta C: \ xampp \ php \ extras \ ssl \ cacert.pem ahí es donde debería estar. Guarde y reinicie su servidor.