Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Español
Comienza ahora

Referencia de errores proxy · Errores de conexión y TLS

SSL CERTIFICATE_VERIFY_FAILED vía proxy

Error de certificado TLS en el cliente: el mensaje exacto en cada herramienta, las causas probables en orden y la solución que funciona.

Última actualización: · 4 minutos de lectura

Respuesta rápida

¿Qué significa SSL: CERTIFICATE_VERIFY_FAILED con un proxy?

CERTIFICATE_VERIFY_FAILED significa que tu cliente no pudo validar el certificado TLS del sitio web. A través de un proxy CONNECT como la pasarela CrawlRelay, TLS funciona de extremo a extremo, por lo que el proxy no es la causa. Mira en tu lado: un bundle CA desactualizado, antivirus o cortafuegos de oficina que inspecciona HTTPS, o un reloj del sistema incorrecto. Nunca lo soluciones con verify=False en producción.

SSL: CERTIFICATE_VERIFY_FAILED en pocas palabras

ErrorSSL: CERTIFICATE_VERIFY_FAILED
TipoError de certificado TLS en el cliente
Enviado porTu biblioteca TLS, cuando no puede validar el certificado del sitio web
Definido enX.509 path validation: RFC 5280; TLS 1.3: RFC 8446
¿Reintentar?No. Arregla el almacén de confianza o la red
Primera comprobaciónPrueba la misma URL sin el proxy en la misma máquina

¿Qué significa SSL: CERTIFICATE_VERIFY_FAILED?

Durante el apretón de manos TLS, el sitio envía una cadena de certificados. Tu cliente la verifica contra una lista de autoridades confiables, el almacén de confianza, y comprueba nombres y fechas. Si alguna verificación falla, se detiene.

Con un túnel CONNECT, el proxy pasa el apretón de manos sin tocarlo, así que el certificado que ves es el del propio sitio. Algo que inserte su propio certificado, como software de inspección, o un almacén de confianza obsoleto en tu máquina, es la causa habitual.

¿Cómo se ve CERTIFICATE_VERIFY_FAILED en Python, curl, Node.js y navegadores?

El mismo fallo se muestra de forma diferente en cada herramienta. Estos son los mensajes que debes buscar en tus registros:

  • Python: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate
  • Node.js: UNABLE_TO_GET_ISSUER_CERT_LOCALLY o SELF_SIGNED_CERT_IN_CHAIN
  • curl: curl: (60) SSL certificate problem: unable to get local issuer certificate
  • Navegadores: NET::ERR_CERT_AUTHORITY_INVALID

¿Qué causa CERTIFICATE_VERIFY_FAILED?

Lo más probable al principio:

  • Un bundle CA desactualizado, por ejemplo un paquete certifi antiguo en Python.
  • Inspección HTTPS por antivirus, un cortafuegos corporativo o un proxy de depuración, que presenta su propio certificado.
  • Un reloj del sistema incorrecto que hace que certificados válidos parezcan expirados o no válidos aún.
  • Un sitio con una cadena rota, con certificado intermedio faltante.
  • Una imagen de contenedor sin el paquete de certificados CA del sistema.

¿Cómo diagnostico CERTIFICATE_VERIFY_FAILED paso a paso?

  1. Ejecuta la misma solicitud sin el proxy. Si también falla, el proxy no está involucrado.
  2. Imprime el emisor del certificado con openssl s_client o curl -v: un emisor con nombre de tu antivirus o cortafuegos indica intercepción.
  3. Revisa la fecha y hora del sistema.
  4. Actualiza el bundle CA y prueba otra vez.
Prueba la URL que falla con curl (puerto HTTP, modo detallado)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

¿Cómo soluciono CERTIFICATE_VERIFY_FAILED?

  • Actualiza certifi (pip install -U certifi) o el paquete CA de tu sistema.
  • Añade el certificado de inspección de tu empresa al almacén de confianza si tu red requiere inspección, o ejecuta el scraper fuera de esa red.
  • Corrige el reloj con sincronización de tiempo en red.
  • Instala certificados CA en imágenes de contenedor slim, por ejemplo el paquete ca-certificates.
  • No desactives la verificación en código que envía credenciales o recoge datos que usas.

¿Debo reintentar después de CERTIFICATE_VERIFY_FAILED?

No reintentes: el mismo almacén de confianza falla igual. Arregla el almacén, el reloj o la ruta de red, y vuelve a ejecutar.

¿Cómo se aplica SSL: CERTIFICATE_VERIFY_FAILED a CrawlRelay?

El puerto HTTP de CrawlRelay encapsula HTTPS con CONNECT, así que el certificado que tu cliente comprueba es el que envía el sitio. Si el error aparece solo a través de la pasarela y nunca sin ella, contacta con soporte con el hostname objetivo y el error completo para que revisemos el lado de salida.

Gateway: gw.crawlrelay.com, puerto 7777 (HTTP, HTTPS a través de CONNECT) y puerto 7778 (SOCKS5). Formato de usuario: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Relacionado: SSL: WRONG_VERSION_NUMBER · Conexión restablecida · Guía Python.

SSL: CERTIFICATE_VERIFY_FAILED: preguntas que hacen los desarrolladores

¿Puede un proxy causar errores de certificado SSL?

Un proxy interceptador puede, porque presenta su propio certificado. Un proxy túnel CONNECT no puede, porque solo reenvía bytes cifrados y nunca ve el contenido del apretón de manos. Ejecuta la misma solicitud sin el proxy: si el error persiste, la causa está en tu máquina o red.

¿Es seguro usar verify=False para scraping?

No como solución. Oculta intercepciones y cadenas rotas, y un atacante en la ruta podría leer o modificar tu tráfico, incluidos tokens y cookies. Úsalo solo para una prueba local rápida, y nunca en un trabajo que corra sin supervisión o envíe credenciales.

¿Por qué falla en Docker pero funciona en mi portátil?

Las imágenes de contenedor slim a menudo no incluyen certificados CA, por lo que ningún certificado se puede validar. Instala el paquete CA del sistema en la imagen, o confía en el bundle certifi de Python. También revisa que el reloj del contenedor sea correcto.

Otros errores de proxy en esta referencia

Códigos de estado HTTP

Errores de navegador y cliente

Errores de conexión y TLS

Proxies residenciales con documentación que cubre los casos de fallo

CrawlRelay proxies residenciales de 0,50 US$/GB, tráfico que nunca expira.

Desde 0,50 US$/GB · sin KYC

Comienza ahora