Solución al Error “unable to get local issuer certificate”
Descripción del Error
El mensaje de error “unable to get local issuer certificate” se presenta comúnmente en entornos de desarrollo cuando se intenta establecer una conexión segura a través de SSL/TLS. Este problema ocurre cuando la aplicación no puede verificar la validez del certificado del servidor porque no puede encontrar la cadena de certificados necesaria para verificar el emisor local. Este error es frecuente en herramientas como Git, cURL, y entornos de desarrollo de PHP y Node.js, y puede causar interrupciones en el flujo de trabajo.
Causas Comunes
Las causas más comunes de este error incluyen:
- Certificado Auto-firmado: El uso de certificados que no están firmados por una autoridad de certificación reconocida.
- Configuración Incorrecta de SSL: La configuración de SSL en la aplicación puede no estar apuntando al archivo correcto del certificado CA.
- Falta de Certificados CA: La falta de certificados de autoridad que permitan validar el certificado del servidor.
- Problemas de Configuración en Herramientas de Desarrollo: Herramientas como Git o npm pueden tener configuraciones que afectan la verificación de SSL.
Métodos de Solución
Método 1: Configurar el Backend de SSL en Git
Para resolver el error en Git, puedes cambiar la configuración del backend de SSL a schannel, que es más compatible con Windows.
- Abre Git Bash.
- Ejecuta el siguiente comando:
bash
git config --global http.sslbackend schannel
Este comando configura Git para usar el backend SSL de Windows, que maneja mejor los certificados que el backend por defecto.
Método 2: Desactivar la Verificación SSL en Git
Si estás en un entorno de desarrollo y necesitas una solución rápida, puedes desactivar la verificación SSL temporalmente.
- Abre Git Bash.
- Ejecuta los siguientes comandos:
bash
git config --global http.sslVerify false
git config --global http.sslVerify true
Nota: Desactivar la verificación SSL puede exponer tu aplicación a ataques de tipo “man-in-the-middle”. Se recomienda habilitar la verificación tan pronto como sea posible.
Método 3: Configurar Certificados CA en PHP
Si estás trabajando con PHP, puedes especificar la ubicación del archivo de certificados CA.
- Descarga el archivo
cacert.pemdesde curl.se. - Guarda el archivo en una ubicación accesible, como
C:\xampp\php\extras\ssl\cacert.pem. - Abre el archivo
php.iniy agrega las siguientes líneas:
“`ini
[curl]
curl.cainfo = “C:\xampp\php\extras\ssl\cacert.pem”
[openssl]
openssl.cafile = “C:\xampp\php\extras\ssl\cacert.pem”
“`
4. Reinicia tu servidor web (por ejemplo, Apache).
Método 4: Configuración en Node.js
Si estás utilizando Node.js, puedes desactivar la verificación de SSL con el siguiente comando en la terminal:
- Abre la terminal.
- Ejecuta el siguiente comando:
bash
npm config set strict-ssl false - Para restaurar la configuración, puedes ejecutar:
bash
npm config set strict-ssl true
Método 5: Verificar Ubicación de Certificados en PHP
Para verificar dónde PHP está buscando los certificados, puedes usar el siguiente comando:
- Crea un archivo PHP con el siguiente contenido:
“`php
``php.ini` para incluir la ubicación correcta del certificado.
2. Ejecuta el archivo y verifica las rutas donde PHP está buscando los certificados. Si es necesario, ajusta el archivo
Método 6: Usar un Certificado Válido
Si es posible, considera usar un certificado válido de una autoridad de certificación reconocida como Let’s Encrypt. Esto elimina la necesidad de desactivar la verificación SSL y mejora la seguridad de tu aplicación.
Consejos de Prevención
- Siempre utiliza certificados válidos y actualizados.
- Configura correctamente las rutas de los certificados en tus archivos de configuración.
- Evita desactivar la verificación de SSL en entornos de producción para mitigar riesgos de seguridad.
- Mantente informado sobre las actualizaciones de las herramientas y bibliotecas que utilizas.
Resumen
El error “unable to get local issuer certificate” puede ser frustrante, pero existen múltiples métodos para resolverlo. Desde ajustar la configuración de Git hasta asegurarte de que tu entorno de desarrollo tiene acceso a los certificados CA adecuados. Asegúrate de seguir buenas prácticas de seguridad al manejar certificados y verifica siempre tu configuración para evitar problemas futuros.

コメント