HTTP CONNECT: így kezeli a HTTPS-t egy HTTP-proxy
Kövesd végig a HTTPS-kérést egy HTTP-proxyn, különítsd el a CONNECT-választ az eredeti kiszolgáló válaszától, és keresd meg az alagút hibájának helyét.
A „200 Connection Established” azt jelenti, hogy a proxy elfogadott egy alagutat. A webhely még nem küldött oldalt. Ezután következik a TLS a célállomással, majd maga a HTTPS-kérés.
A proxykapcsolattól a webhely válaszáig
- A kliens csatlakozik a proxy végpontjához.
- Megkéri a proxyt, hogy csatlakozzon egy célgéphez és porthoz.
- A proxy elfogadja vagy elutasítja a kérést.
- Az elfogadás után a kliens az alagúton keresztül egyezteti a TLS-t a célállomással.
- A kliens elküldi a HTTPS-kérést, és TLS-en belül megkapja a webhely válaszát.
Az elutasított proxykapcsolat, a megtagadott alagút és a tanúsítványhiba a folyamat különböző pontjain keletkezik. A beállítások módosítása előtt keresd meg az utolsó befejezett lépést.
A CONNECT-üzenetváltás
HTTP/1.1 esetén egy egyszerűsített üzenetváltás így néz ki:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
HTTP/1.1 200 Connection Established
A kérés célja egy gép és port, a webhely útvonala vagy lekérdezési paraméterei nélkül. Sikeres CONNECT-válasz után a kapcsolat az alagút bájtjait továbbítja. HTTPS-cél esetén a kliens következő üzenetváltása a TLS-kézfogás.
A számszerű állapotkódot olvasd, ne az angol magyarázó szöveg pontos egyezését keresd. A proxyk ugyanahhoz az állapothoz eltérő szöveget használhatnak.
Megfigyelés curl segítségével
Helyi 8080-as porton működő HTTP-proxy esetén:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Cseréld le a figyelési címet a saját végpontodra; ha jelöltekre van szükséged, böngészd át a HTTP-proxyk listáját, és teszteld a kiválasztott bejegyzést. Az üres kivétellista biztosítja, hogy ez a hívás a proxyt válassza. Időrendi sorrendben keresd a proxykapcsolatot, a CONNECT-választ, a céltanúsítvány ellenőrzését és a webhely válaszát. A napló pontos szövege a curl összeállításától függ.
A célállomás 404-et, 429-et vagy 500-at adhat vissza, miután a proxy elfogadta az alagutat. A TLS során is meghiúsulhat a folyamat, még bármilyen HTTP-válasz előtt.
Hol állt meg?
| Megfigyelés | Mit vizsgálj ezután |
|---|---|
| A proxyhoz való csatlakozás elutasítva | A proxy címét, figyelési portját, folyamatát és a hálózati elérést. |
| A proxy 407-et ad vissza | A proxyfiókot és a hitelesítési sémát. |
| A proxy elutasít egy célállomást vagy portot | A hozzáférési szabályzatot és az engedélyezett CONNECT-célokat. |
| Az alagút megnyílik, majd a TLS-ellenőrzés meghiúsul | A cél nevét, a bizalmi tárat, az órát és az esetleges felügyelt TLS-elfogást. |
| A TLS sikeres, a webhely pedig hibát ad vissza | A webhely válaszát. |
Összehasonlításkor az egyik oldalt hagyd változatlanul: próbálj másik célállomást ugyanazon a proxyn keresztül, vagy hasonlítsd össze ugyanazt a célállomást egy engedélyezett közvetlen útvonalon.
Az alagútnak továbbra is van üzemeltetője
A proxy ismeri a CONNECT-célt, és kezeli a forgalom időzítését és mennyiségét. A szokásos végpontok közötti TLS megvédi a webhely alkalmazásszintű tartalmát attól a proxytól, amely nem végződteti ezt a TLS-munkamenetet. A kliens által megbízhatónak tartott, felügyelt elfogó proxy más bizalmi viszonyt jelent.