: это стандартный способ сказать прокси «открой сырой TCP-туннель по такому-то адресу и дальше не вмешивайся». CONNECT Как устанавливается туннель?
Установка туннеля через CONNECT
Ответ CONNECT
200 Connection established в этот момент прокси перестаёт говорить на HTTP. Следующие байты — это TLS-рукопожатие, и прокси не может их интерпретировать: он только передаёт их. Что прокси видит в туннеле CONNECT?
Видимость по уровням
что вы делаете , но не скрывает, куда вы идёте . Это различие крайне важно при оценке приватности прокси. Тему утечки метаданных и логов мы
разобрали подробно. статье о логировании Разница между CONNECT и absolute-URI
В обычном HTTP прокси отправляется запрос иной формы. Их не следует путать:
Обычный HTTP (absolute-URI)
| HTTPS (CONNECT) | Строка запроса | |
|---|---|---|
| GET http://site/yol HTTP/1.1 | CONNECT site:443 HTTP/1.1 | Видит ли прокси содержимое |
| Да, полностью | Нет | Может ли добавлять заголовки |
| Может ли кешировать | Да | Может ли добавлять заголовки |
| Для каждого запроса | Да | Может ли добавлять заголовки |
| Новая строка запроса | Один туннель, много запросов | Поэтому |
заголовки вроде X-Forwarded-For могут добавляться только в обычном HTTP-трафике; в HTTPS прокси не может тронуть заголовок. Почему CONNECT ограничивают?
CONNECT — это право сказать прокси «открой сырое TCP-соединение к любому адресу». Без ограничений прокси превратится в открытый релей. Поэтому большинство конфигураций прокси ограничивают CONNECT только определёнными портами:
Типично разрешённые порты для CONNECT
Ответы с ошибками, связанные с CONNECT
Частые ошибки
, означает, что CONNECT-запрос получил ответ, отличный от 200. Чтобы увидеть подробности, попробуйте через curl. ERR_TUNNEL_CONNECTION_FAILEDРазбор из командной строки
Посмотреть обмен CONNECT
Перехват TLS (SSL Inspection)
Некоторые корпоративные прокси вместо установки туннеля встают посередине: они сами подключаются к цели и предъявляют клиенту поддельный сертификат, подписанный корневым сертификатом организации. В этом случае прокси может читать и зашифрованное содержимое.
Как это понять?
в нашей статье о прозрачных прокси Замечание о производительности: повторное использование туннеля Разница между CONNECT и absolute-URI
После установки туннеля CONNECT несколько запросов к одной и той же цели могут проходить через него же. Это означает, что стоимость рукопожатия оплачивается лишь один раз. Включённый keep-alive на стороне клиента даёт заметный выигрыш в скорости при трафике на базе CONNECT.
Эффект от повторного использования туннеля
CONNECT — простой, но мощный механизм, позволяющий HTTP-прокси передавать зашифрованный трафик. После установки туннеля прокси не видит содержимое; ему известны лишь целевое доменное имя, время и объём байт. Политики портов ограничивают CONNECT, чтобы предотвратить злоупотребления. Для производительности критично повторное использование туннеля. Чтобы проверить свою конфигурацию, воспользуйтесь
Резюме
нашим инструментом проверки прокси Заголовки прокси можете использовать.