ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] unable to get local issuer certificateError: unable to verify the first certificateUNABLE_TO_GET_ISSUER_CERT_LOCALLYrequests.exceptions.SSLError ... certificate verify failedLos proxies corporativos, algunos antivirus y la mayoría de los equipos de inspección VPN descifran HTTPS para mirar dentro y luego emiten su propio certificado. Los sistemas operativos reciben esa raíz instalada de forma centralizada; Python, Node y Go a menudo incluyen o usan su propio almacén de confianza y nunca la ven. Ese es exactamente el hueco donde curl funciona y tu código falla.
El error también aparece sin ningún proxy cuando la lista de CA incluida en un entorno se ha quedado obsoleta, típicamente en una imagen de contenedor antigua o en una VM de larga vida que nunca se ha actualizado.
No es un problema de autenticación. La petición nunca completa el handshake, así que nunca se envía ninguna clave y nada llega a los registros del proveedor.
Mira quién firmó el certificado que estás recibiendo realmente:
openssl s_client -connect YOUR_DOMAIN:443 -servername YOUR_DOMAIN </dev/null 2>/dev/null \
| openssl x509 -noout -issuer -subject
Si el emisor es una CA pública, el almacén de confianza de tu entorno está obsoleto. Si aparece el nombre de tu empresa, de un equipo de seguridad o de un fabricante de antivirus, el tráfico está siendo interceptado y necesitas instalar esa raíz donde la busca tu entorno.
Revisado por última vez el 2026-10-01. Escrito a partir de problemas diagnosticados en una pasarela compatible con OpenAI en producción, no recopilado de otras webs.