HTTP CONNECT: Så hanterar en HTTP-proxy HTTPS
Följ en HTTPS-begäran genom en HTTP-proxy, skilj CONNECT-svaret från ursprungsserverns svar och hitta var tunneln fallerar.
”200 Connection Established” betyder att proxyn accepterar en tunnel. Webbplatsen har inte returnerat någon sida ännu. Därefter kommer TLS med målet, följt av själva HTTPS-begäran.
Från proxyanslutning till webbplatsens svar
- Klienten ansluter till proxyns slutpunkt.
- Den ber proxyn ansluta till en målvärd och port.
- Proxyn accepterar eller avvisar begäran.
- Efter godkännandet förhandlar klienten TLS med målet genom tunneln.
- Klienten skickar HTTPS-begäran och tar emot webbplatsens svar inuti TLS.
En nekad proxyanslutning, en avvisad tunnel och ett certifikatfel inträffar på olika ställen i denna ordning. Hitta det sista slutförda steget innan du ändrar inställningar.
CONNECT-utbytet
I HTTP/1.1 ser ett förenklat utbyte ut så här:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
HTTP/1.1 200 Connection Established
Målet för begäran är en värd och port, utan webbplatsens sökväg eller frågeparametrar. Efter ett lyckat CONNECT-svar transporterar anslutningen tunnelbyte. För ett HTTPS-mål är klientens nästa utbyte TLS-handskakningen.
Läs den numeriska statusen i stället för att matcha den engelska förklaringstexten. Proxyer kan använda olika text för samma status.
Följ med via curl
För en HTTP-proxy på lokal port 8080:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Byt ut lyssningsadressen mot din slutpunkt. Behöver du kandidater kan du bläddra i listan med HTTP-proxyer och testa den valda posten. Den tomma undantagslistan säkerställer att det här anropet väljer proxyn. Leta i tidsordning efter proxyanslutningen, CONNECT-svaret, kontrollen av målcertifikatet och webbplatsens svar. Den exakta loggtexten beror på curl-bygget.
Målet kan returnera 404, 429 eller 500 efter att proxyn accepterat tunneln. Det kan också fallera under TLS innan något HTTP-svar returneras.
Var tog det stopp?
| Observation | Vad du undersöker härnäst |
|---|---|
| Anslutningen till proxyn nekas | Proxyadress, lyssningsport, process och nätverksåtkomst. |
| Proxyn returnerar 407 | Proxykontot och autentiseringsmetoden. |
| Proxyn avvisar ett mål eller en port | Åtkomstregler och tillåtna CONNECT-mål. |
| Tunneln öppnas men sedan misslyckas TLS-kontrollen | Målnamn, tillitslager, klocka och eventuell administrerad TLS-avlyssning. |
| TLS lyckas och webbplatsen returnerar ett fel | Webbplatsens svar. |
Håll ena sidan oförändrad vid jämförelser: prova ett annat mål genom samma proxy eller jämför samma mål över en tillåten direkt rutt.
Tunneln har fortfarande en operatör
Proxyn känner till CONNECT-målet och hanterar trafikens tidpunkter och volym. Vanlig TLS från ände till ände skyddar webbplatsens applikationsinnehåll mot en proxy som inte terminerar den TLS-sessionen. En administrerad avlyssningsproxy som klienten litar på har ett annat tillitsförhållande.