Lingua-e
Python

¿Qué significa SSLCertVerificationError?

← Errores

ssl.SSLCertVerificationError se lanza cuando la capa SSL de Python no puede verificar el certificado TLS del servidor. Esto puede significar que el certificado está vencido, es autofirmado, emitido por una autoridad no confiable o el nombre de host no coincide con el certificado.

Por qué ocurre

  • El certificado SSL del servidor ha vencido.
  • Se usa un certificado autofirmado sin agregarlo al almacén de confianza.
  • El paquete CA del sistema está desactualizado o falta (común en macOS después de instalar Python).
  • Un proxy corporativo realiza inspección SSL y presenta su propio certificado.

Ejemplos

Python

Código que causa el error

import urllib.request
urllib.request.urlopen("https://expired.badssl.com/")

Error en la terminal

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1007)

Cómo solucionarlo

En macOS, ejecuta el script 'Install Certificates.command' en el directorio de instalación de Python. Actualiza tu paquete CA con certifi. Si controlas el servidor, renueva el certificado vencido. Nunca deshabilites la verificación SSL en código de producción.

Código corregido

import requests

# Production: keep verification enabled
response = requests.get("https://api.example.com", timeout=10)

# Development only: disable verification (never in production)
# response = requests.get("https://...", verify=False)

Errores relacionados

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis