Tecnología · GUÍA PRÁCTICA
¿Python SSL WRONG_VERSION_NUMBER? Demuestra el esquema del proxy y el extremo TLS
Mapea los esquemas de destino y proxy, ajustes heredados, ruta CONNECT y primer extremo antes de cambiar certificados, versiones TLS o verificación.

WRONG_VERSION_NUMBER suele indicar que los bytes recibidos en un supuesto límite TLS no eran un registro TLS válido para esa conexión. Enviar TLS a un proxy o puerto HTTP en claro es una causa común, pero no la única.
Conserva la URL, los proxies efectivos, el descubrimiento por entorno y sistema, CONNECT y el primer extremo que responde. No uses verify=False para convertir un error de ruta en uno de certificados.
Fija la solicitud y todas las fuentes de proxy
Registra versiones de Python, Requests, urllib3 y OpenSSL, URL, puerto y excepción completa. Conserva PreparedRequest, parámetros, Session, entorno y proxy del sistema.
No cambies todavía confianza o versiones TLS. Compara un entorno limpio con la política de proxy usando un destino inocuo.
Mapea por separado destino y proxy
Un proxy HTTP puede llevar un destino HTTPS mediante CONNECT. En un proxy HTTPS, el cliente primero establece TLS con el proxy.
Por eso HTTPS_PROXY=http://proxy:port puede ser correcto. El nombre de la variable no decide el protocolo del extremo.
Demuestra el primer extremo que recibe TLS
Resuelve host y puerto del proxy efectivo y registra CONNECT y si la primera respuesta parece HTTP en claro, autenticación o TLS. Elimina credenciales de los registros.
Cuando la política lo permita, prueba el puerto de destino directamente. Una URL https:// hacia un puerto HTTP también falla, y un balanceador o interceptor puede cambiar el límite.
Separa errores de certificado y versión
CERTIFICATE_VERIFY_FAILED ocurre tras existir TLS; verify=False no convierte un extremo en claro en TLS. WRONG_VERSION_NUMBER es anterior.
UNSUPPORTED_PROTOCOL es otra rama. Solo después de probar que el extremo usa TLS debes comparar SSLContext y versiones admitidas.
Corrige una fuente y demuestra la salida
Corrige la fuente real: solicitud, Session, entorno, sistema o despliegue. Un proxy HTTP conserva http:// incluso para destinos HTTPS.
Repite con verificación activa; confirma proxy, CONNECT, certificado de destino y respuesta. Reinicia el trabajo real para descartar un éxito exclusivo de un shell limpio.
