Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿curl error 35 “wrong version number”? Demuestra qué salto habló en texto claro antes de cambiar TLS

Suele ser un protocolo equivocado, no una versión TLS antigua. Traza proxy y origen, corrige solo el contrato probado y conserva la verificación.

Diagrama de ruta para localizar el salto claro en un fallo TLS de curl.
Ilustración original de Watch at Ease: captura, localiza y clasifica el salto. Watch at Ease

Suele ser un protocolo equivocado, no una versión TLS antigua. Traza proxy y origen, corrige solo el contrato probado y conserva la verificación.

La frase puede inducir a error: en algún límite llegaron bytes de un protocolo distinto del esperado por la negociación, pero eso no demuestra que la versión TLS esté obsoleta.

1. Congela la ruta fallida

Antes de repetir, guarda el comando exacto, URL, curl -V, código de salida y un curl -v o --trace-time sin secretos. Anota host y shell porque las variables de proxy y .curlrc dependen del contexto.

Enumera http_proxy, HTTPS_PROXY, ALL_PROXY y NO_PROXY sin publicar credenciales. --noproxy "*" solo es una comparación válida si política y ruta permiten acceso directo.

2. Nombra cada salto de red

Escribe la ruta cliente→proxy, CONNECT, túnel y origen. Un proxy http:// usa texto claro hasta el proxy; uno https:// negocia TLS con el proxy primero.

Verifica también esquema y puerto del destino. Enviar HTTPS a un puerto que sirve HTTP claro puede producir wrong version number aunque ambos extremos admitan TLS moderno.

3. Lee el límite en el registro

En la salida detallada localiza el último socket correcto y el primer fallo de registro TLS. Decide si ocurre antes de CONNECT, en su respuesta o tras el túnel al saludar al origen.

Un banner de proxy, línea de estado HTTP o texto legible donde se espera ServerHello es evidencia de ruta. Guarda la prueba sin cabeceras de autorización, cookies ni secretos de consulta.

4. Corrige un solo contrato

Corrige solo el desacuerdo probado: esquema o puerto del proxy, esquema del destino, listener del servicio o variable antigua. No empieces con -k ni forzando una versión TLS.

Si la inspección TLS está aprobada, instala y limita la cadena autorizada después de probar la ruta. Si no se esperaba, trata proxy o certificado inesperado como incidente.

5. Demuestra el resultado

Repite una petición detallada por la ruta prevista. Exige la secuencia correcta de proxy/túnel, TLS completo, nombre verificado y un estado HTTP del destino.

Guarda el comando corregido, traza depurada y diferencia de configuración. Prueba después la aplicación o instalador original, cuyo entorno puede diferir del shell.

Puertas de aceptación para la ruta proxy y TLS reparada.
Ilustración original de Watch at Ease: ruta, TLS y HTTP deben pasar. Watch at Ease