HTTP CONNECT: cómo maneja HTTPS un proxy HTTP
Sigue una petición HTTPS a través de un proxy HTTP, distingue la respuesta CONNECT de la del servidor de origen y localiza dónde falla el túnel.
«200 Connection Established» significa que el proxy acepta un túnel. El sitio web todavía no ha devuelto ninguna página. Después viene TLS con el destino y, a continuación, la petición HTTPS propiamente dicha.
De la conexión al proxy a la respuesta del sitio
- El cliente se conecta al endpoint del proxy.
- Le pide al proxy que se conecte a un host y puerto de destino.
- El proxy acepta o rechaza esa solicitud.
- Tras la aceptación, el cliente negocia TLS con el destino a través del túnel.
- El cliente envía la petición HTTPS y recibe la respuesta del sitio dentro de TLS.
Una conexión al proxy rechazada, un túnel denegado y un error de certificado ocurren en puntos distintos de esta secuencia. Localiza el último paso completado antes de cambiar ajustes.
El intercambio CONNECT
En HTTP/1.1, un intercambio simplificado es así:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
HTTP/1.1 200 Connection Established
El destino de la petición es un host y un puerto, sin la ruta ni los parámetros de consulta del sitio. Tras una respuesta CONNECT satisfactoria, la conexión transporta los bytes del túnel. Para un destino HTTPS, el siguiente intercambio del cliente es el saludo TLS.
Lee el código numérico en lugar de buscar una coincidencia exacta con la frase explicativa en inglés. Los proxies pueden usar textos distintos para el mismo estado.
Observarlo con curl
Para un proxy HTTP en el puerto local 8080:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Sustituye la dirección de escucha por tu endpoint; si necesitas candidatos, consulta la lista de proxies HTTP y prueba la entrada elegida. La lista de exclusiones vacía garantiza que esta invocación seleccione el proxy. Busca, por orden cronológico, la conexión al proxy, la respuesta CONNECT, la verificación del certificado del destino y la respuesta del sitio. El texto exacto del registro depende de la compilación de curl.
El destino puede devolver 404, 429 o 500 después de que el proxy acepte el túnel. También puede fallar durante TLS, antes de devolver cualquier respuesta HTTP.
¿Dónde se detuvo?
| Observación | Qué revisar después |
|---|---|
| Se rechaza la conexión al proxy | Dirección del proxy, puerto de escucha, proceso y acceso a la red. |
| El proxy devuelve 407 | La cuenta del proxy y el esquema de autenticación. |
| El proxy rechaza un destino o un puerto | Política de acceso y destinos CONNECT permitidos. |
| El túnel se abre y después falla la verificación TLS | Nombre del destino, almacén de confianza, reloj y cualquier interceptación TLS administrada. |
| TLS se completa y el sitio devuelve un error | La respuesta del sitio. |
Para comparar, mantén fijo uno de los lados: prueba otro destino con el mismo proxy o compara el mismo destino mediante una ruta directa permitida.
El túnel sigue teniendo un operador
El proxy conoce el destino CONNECT y gestiona los tiempos y el volumen del tráfico. El TLS de extremo a extremo habitual protege el contenido de aplicación del sitio frente a un proxy que no termina esa sesión TLS. Un proxy de interceptación administrado en el que confía el cliente tiene una relación de confianza diferente.