# SSL WRONG_VERSION_NUMBER vía proxy: la solución

> [SSL: WRONG_VERSION_NUMBER] a través de un proxy suele significar una URL https:// en un puerto de proxy HTTP simple. La solución en una línea para Python y Node.

- URL: https://crawlrelay.com/es/docs/errors/ssl-wrong-version-number/
- Última actualización: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

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

**Respuesta rápida — ¿Qué significa SSL: WRONG_VERSION_NUMBER con un proxy?**

**[SSL: WRONG_VERSION_NUMBER]** a través de un proxy casi siempre significa que tu cliente inició un handshake TLS con algo que respondió en texto plano. La causa habitual es una URL de proxy `https://` apuntando a un puerto proxy HTTP simple. Con CrawlRelay, escribe `http://` delante de la dirección de la puerta de enlace tanto para destinos HTTP como HTTPS; el HTTPS propio del sitio sigue funcionando dentro del túnel.

## SSL: WRONG_VERSION_NUMBER en pocas palabras

| Atributo | Valor |
| --- | --- |
| Error | SSL: WRONG_VERSION_NUMBER |
| Tipo | Error TLS en el cliente |
| Enviado por | Tu biblioteca TLS, cuando el otro lado no habla TLS |
| Definido en | TLS 1.3: RFC 8446; HTTP proxy CONNECT: RFC 9110, section 9.3.6 |
| ¿Reintentar? | No. Es un error de configuración |
| Primera comprobación | Mira el esquema delante de la URL del proxy |

## ¿Qué significa SSL: WRONG_VERSION_NUMBER?

TLS empieza con un registro de handshake. Si los bytes que regresan son una respuesta HTTP en lugar de eso, la biblioteca TLS lee un número de versión inválido y para. Python reporta `WRONG_VERSION_NUMBER`; la redacción varía con la versión de OpenSSL y el cliente.

El esquema de la URL del proxy decide cómo el cliente habla con el proxy. `http://` significa HTTP plano con el proxy, seguido por túnel `CONNECT` y TLS con el sitio web. `https://` significa TLS con el mismo proxy, que sólo funciona si el puerto del proxy espera TLS.

## ¿Cómo se ve SSL: WRONG_VERSION_NUMBER 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 requests / urllib3 2.x:** `SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number'))` envuelto en un `ProxyError`
- **httpx:** `httpx.ConnectError: [SSL: WRONG_VERSION_NUMBER] wrong version number`
- **curl:** `curl: (35) ... wrong version number` cuando escribes `-x https://` para un proxy simple
- **Node.js:** `EPROTO ... wrong version number` en el mensaje de error

## ¿Qué causa SSL: WRONG_VERSION_NUMBER?

Lo más probable al principio:

- **`https://` delante de la dirección del proxy** en un puerto que habla HTTP plano. Es el caso más común.
- **Configuraciones copiadas** de un proveedor cuyo puerto proxy sí espera TLS.
- **`https://` en una URL con puerto 80**, o `http://` en un puerto de sitio que espera TLS, fuera de cualquier proxy.
- **Una variable de entorno** como `HTTPS_PROXY=https://...` que tu código hereda.

## ¿Cómo diagnostico SSL: WRONG_VERSION_NUMBER paso a paso?

1. Imprime la URL del proxy que tu código usa y revisa su esquema.
2. Revisa el entorno para `HTTPS_PROXY` y `ALL_PROXY`.
3. Ejecuta la prueba curl abajo con `-x http://` y confirma que funciona.
4. Si curl funciona y tu código no, tu código o entorno todavía usa `https://`.

*Prueba la URL que falla con curl (puerto HTTP, modo detallado)*

```bash
# 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:PASSWORD@gw.crawlrelay.com: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 SSL: WRONG_VERSION_NUMBER?

- **Usa `http://` para la URL del proxy** en cada clave: `{"http": "http://...", "https": "http://..."}`.
- **Deja activa la verificación TLS.** La solución es el esquema, no `verify=False`.
- **Corrige la variable de entorno** en lugar de sobreescribir en un script.

## ¿Debo reintentar después de SSL: WRONG_VERSION_NUMBER?

Nunca reintentes este error: cada intento falla igual. Es una corrección de configuración de un solo carácter.

## ¿Cómo se aplica SSL: WRONG_VERSION_NUMBER a CrawlRelay?

El puerto HTTP de CrawlRelay es un puerto proxy HTTP plano que transporta sitios HTTPS mediante túneles `CONNECT`. TLS funciona de extremo a extremo entre tu cliente y el sitio web dentro del túnel, así que la puerta de enlace nunca necesita una URL de proxy `https://`.

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: [Error de verificación de certificado SSL](https://crawlrelay.com/es/docs/errors/ssl-certificate-verify-failed/) · [No se puede conectar al proxy](https://crawlrelay.com/es/docs/errors/cannot-connect-to-proxy/) · [Guía Python](https://crawlrelay.com/es/docs/python/).

## SSL: WRONG_VERSION_NUMBER: preguntas que hacen los desarrolladores

### ¿Mi tráfico no está cifrado si uso una URL proxy http://?

No para sitios HTTPS. El esquema `http://` sólo cubre el intercambio corto CONNECT con el proxy, que incluye tus credenciales. Después, el cliente ejecuta TLS directamente con el sitio dentro del túnel, y el proxy sólo reenvía bytes cifrados. Los sitios con `http://` plano están sin cifrar con o sin proxy.

### ¿Por qué empezó esto tras actualizar urllib3?

urllib3 2.x soporta proxies HTTPS, así que toma literalmente una URL de proxy `https://` y arranca TLS con el proxy. Configuraciones antiguas a veces funcionaban por accidente con esquema erróneo. Escribe `http://` para puertos proxy HTTP plano y el error desaparece.

### ¿Debo poner verify=False para eliminar el error?

No. Desactivar la verificación de certificados no arregla un esquema erróneo y te expone a interceptación en cada petición. Corrige el esquema de la URL del proxy. Mantén la verificación activada en producción.

## Otros errores de proxy en esta referencia

- [401 Unauthorized vs 407](https://crawlrelay.com/es/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/es/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/es/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/es/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/es/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/es/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/es/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/es/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/es/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/es/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/es/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/es/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/es/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/es/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/es/docs/errors/ssl-wrong-version-number/)

**Proxies residenciales con documentación que cubre los casos de fallo** CrawlRelay proxies residenciales de 0,50 US$/GB, tráfico que nunca expira. [Ver precios](https://crawlrelay.com/es/pricing/) · [Inicio rápido](https://crawlrelay.com/es/docs/)

---

CrawlRelay: CrawlRelay es un servicio de proxies residenciales rotativos y proxies móviles 4G/5G para desarrolladores, ideal para scrapers y pipelines de datos de IA: tráfico prepago sin vencimiento desde 0,50 US$/GB, pagado con criptomonedas, sin subir documentos de identidad. Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas.
