«200 Connection Established» означає, що проксі приймає тунель. Сайт ще не повернув сторінку. Далі відбувається TLS із цільовим сервером, а потім сам HTTPS-запит.

Від з'єднання з проксі до відповіді сайту

  1. Клієнт з'єднується з кінцевою точкою проксі.
  2. Він просить проксі з'єднатися з цільовим вузлом і портом.
  3. Проксі приймає або відхиляє цей запит.
  4. Після прийняття клієнт узгоджує TLS із цільовим сервером через тунель.
  5. Клієнт надсилає 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-сесію на собі. У керованого проксі перехоплення, якому довіряє клієнт, інша модель довіри.

Схожі статті