HTTP CONNECT: ako HTTP proxy spracúva HTTPS
Sledujte HTTPS požiadavku cez HTTP proxy, odlíšte odpoveď CONNECT od odpovede pôvodného servera a zistite, kde tunel zlyháva.
„200 Connection Established“ znamená, že proxy prijíma tunel. Web zatiaľ nevrátil žiadnu stránku. Nasleduje TLS s cieľom a potom samotná HTTPS požiadavka.
Od spojenia s proxy po odpoveď webu
- Klient sa pripojí ku koncovému bodu proxy.
- Požiada proxy o pripojenie k cieľovému hostiteľovi a portu.
- Proxy túto požiadavku prijme alebo odmietne.
- Po prijatí klient cez tunel dohodne TLS s cieľom.
- Klient odošle HTTPS požiadavku a v rámci TLS dostane odpoveď webu.
Odmietnuté spojenie s proxy, zamietnutý tunel a chyba certifikátu nastávajú na rôznych miestach tejto postupnosti. Pred zmenou nastavení nájdite posledný dokončený krok.
Výmena CONNECT
V HTTP/1.1 vyzerá zjednodušená výmena takto:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
HTTP/1.1 200 Connection Established
Cieľom požiadavky je hostiteľ a port, bez cesty či parametrov dopytu webu. Po úspešnej odpovedi CONNECT spojenie prenáša bajty tunela. Pri HTTPS cieli je ďalšou výmenou klienta TLS handshake.
Čítajte číselný stav namiesto porovnávania anglického vysvetľujúceho textu. Proxy môžu pre rovnaký stav používať rôzne slová.
Sledovanie pomocou curl
Pre HTTP proxy na miestnom porte 8080:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Nahraďte adresu počúvania svojím koncovým bodom. Ak potrebujete kandidátov, prezrite si zoznam HTTP proxy a otestujte vybraný záznam. Prázdny zoznam výnimiek zabezpečí, že toto volanie zvolí proxy. V časovom poradí hľadajte spojenie s proxy, odpoveď CONNECT, overenie cieľového certifikátu a odpoveď webu. Presné znenie protokolu závisí od zostavenia curl.
Cieľ môže vrátiť 404, 429 alebo 500 po tom, čo proxy prijme tunel. Môže tiež zlyhať počas TLS ešte pred akoukoľvek HTTP odpoveďou.
Kde sa to zastavilo?
| Pozorovanie | Čo preskúmať ďalej |
|---|---|
| Spojenie s proxy je odmietnuté | Adresu proxy, port počúvania, proces a prístup k sieti. |
| Proxy vracia 407 | Účet proxy a spôsob autentifikácie. |
| Proxy odmieta cieľ alebo port | Pravidlá prístupu a povolené ciele CONNECT. |
| Tunel sa otvorí, no potom zlyhá overenie TLS | Názov cieľa, úložisko dôveryhodných certifikátov, hodiny a prípadné spravované zachytávanie TLS. |
| TLS uspeje a web vráti chybu | Odpoveď webu. |
Pri porovnávaní ponechajte jednu stranu rovnakú: skúste iný cieľ cez rovnakú proxy alebo porovnajte rovnaký cieľ cez povolenú priamu trasu.
Tunel má stále prevádzkovateľa
Proxy pozná cieľ CONNECT a spracúva časovanie aj objem prenosu. Bežné koncové TLS chráni aplikačný obsah webu pred proxy, ktorá túto reláciu TLS neukončuje. Spravovaná zachytávajúca proxy, ktorej klient dôveruje, má iné usporiadanie dôvery.