Cuando estas desarrollando en forma local y utilizando las funciones cURL de PHP para conectarte con un WebService, API o una URL HTTPS, es posible que te presente el siguiente error:
Uncaught Exception: SSL certificate problem: unable to get local issuer certificate.
En este caso estamos implementando la API de Mercado Pago y nos presenta este error.
Solución
Este error se produce cuando la variable curl.cainfo no está configurada correctamente.
Realiza los siguiente pasos para configuración:
- Descargue
cacert.pem
desde https://curl.se/docs/caextract.html - Copiar el archivo
cacert.pem
en la carpetaextras/ssl/
de la instalación de PHP. - Abrir el archivo de configuración php.ini, agregar la ubicación del archivo
cacert.pem
a las directivascurl.cainfo
yopenssl.cafile
curl.cainfo = "c:\php\extras\ssl\cacert.pem"
openssl.cafile="c:\php\extras\ssl\cacert.pem"
En mi caso la instalación de php la tengo en la dirección c:\php
, si usas XAMPP, WAMP o algún otro deberás agregar la ubicación correspondiente.
Si las 2 lineas anteriores tienen al inicio un punto y coma (;) deberá quitarlo.
Para esta configuración se requiere tener habilitado mod_ssl
en apache y php_openssl.dll
en el php.ini
4. Reiniciar Apache.