HTTP CONNECT: як HTTP-проксі працуе з HTTPS
Прасочыце HTTPS-запыт праз HTTP-проксі, аддзяліце адказ CONNECT ад адказу зыходнага сервера і знайдзіце этап збою тунэля.
«200 Connection Established» азначае, што проксі прымае тунэль. Сайт яшчэ не вярнуў старонку. Далей адбываецца TLS з мэтавым серверам, а потым сам HTTPS-запыт.
Ад злучэння з проксі да адказу сайта
- Кліент злучаецца з канцавым пунктам проксі.
- Ён просіць проксі злучыцца з мэтавым вузлом і портам.
- Проксі прымае або адхіляе гэты запыт.
- Пасля прыняцця кліент узгадняе TLS з мэтавым серверам праз тунэль.
- Кліент адпраўляе HTTPS-запыт і атрымлівае адказ сайта ўнутры TLS.
Адмова ў злучэнні з проксі, адхіленне тунэля і памылка сертыфіката ўзнікаюць на розных этапах гэтай паслядоўнасці. Перад зменай налад знайдзіце апошні завершаны крок.
Абмен CONNECT
У HTTP/1.1 спрошчаны абмен выглядае так:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
HTTP/1.1 200 Connection Established
Мэта запыту — вузел і порт, без шляху ці параметраў запыту сайта. Пасля паспяховага адказу CONNECT злучэнне перадае байты тунэля. Для HTTPS-мэты наступны абмен кліента — рукапацісканне TLS.
Чытайце лікавы код стану, а не шукайце супадзенне з англійскай тлумачальнай фразай. Проксі могуць выкарыстоўваць розны тэкст для аднаго стану.
Назіранне праз curl
Для HTTP-проксі на лакальным порце 8080:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Замяніце адрас праслухоўвання сваім канцавым пунктам. Калі патрэбныя кандыдаты, праглядзіце спіс HTTP-проксі і праверце выбраны запіс. Пусты спіс выключэнняў гарантуе выбар проксі ў гэтым выкліку. У храналагічным парадку шукайце злучэнне з проксі, адказ CONNECT, праверку сертыфіката мэтавага сервера і адказ сайта. Дакладны тэкст журнала залежыць ад зборкі curl.
Мэтавы сервер можа вярнуць 404, 429 або 500 пасля таго, як проксі прыняў тунэль. Збой можа адбыцца і падчас TLS, яшчэ да любога HTTP-адказу.
Дзе ўсё спынілася?
| Назіранне | Што праверыць далей |
|---|---|
| У злучэнні з проксі адмоўлена | Адрас проксі, порт праслухоўвання, працэс і сеткавы доступ. |
| Проксі вяртае 407 | Уліковы запіс проксі і схему аўтэнтыфікацыі. |
| Проксі адхіляе мэту або порт | Палітыку доступу і дазволеныя мэты CONNECT. |
| Тунэль адкрываецца, але потым праверка TLS завяршаецца памылкай | Імя мэтавага сервера, сховішча даверу, гадзіннік і магчымае кіраванае перахопліванне TLS. |
| TLS усталяваны, а сайт вяртае памылку | Адказ сайта. |
Падчас параўнання пакідайце адзін бок нязменным: паспрабуйце іншую мэту праз той жа проксі або параўнайце тую ж мэту дазволеным прамым маршрутам.
У тунэля ўсё роўна ёсць аператар
Проксі ведае мэту CONNECT і апрацоўвае часавыя характарыстыкі і аб'ём трафіку. Звычайны скразны TLS абараняе прыкладное змесціва сайта ад проксі, які не завяршае гэтую TLS-сесію на сабе. У кіраванага проксі перахопу, якому давярае кліент, іншая мадэль даверу.