TLS (SSL)
TLS — протокол шифрования, на котором работает HTTPS: он защищает данные между программой и сайтом.
Обновлено · Редакция Prokso
Когда адрес сайта начинается с https://, программа и сайт договариваются о ключах по протоколу TLS и дальше обмениваются зашифрованными данными. Старое название SSL до сих пор используют по привычке.
При работе через прокси шифрование сохраняется. Обычный HTTP-прокси открывает для таких сайтов туннель методом CONNECT и видит только имя сайта и объём данных, но не содержимое страниц.
Имя сайта в начале соединения передаётся в поле SNI. Именно из него прокси и сеть узнают, к какому сайту идёт запрос.
Ошибка сертификата при работе через прокси — повод остановиться и проверить настройки: исправный прокси сертификаты сайтов не подменяет.
Рукопожатие TLS шаг за шагом
Программа открывает соединение и отправляет сообщение ClientHello: поддерживаемые версии протокола, наборы шифров, имя сайта и другие расширения. Сервер отвечает сообщением ServerHello и своим сертификатом, обе стороны вычисляют общие ключи, и только тогда начинаются зашифрованные данные. В TLS 1.3 на это уходит один обмен «туда и обратно», в TLS 1.2 — два.
Через HTTP-прокси рукопожатие начинается после того, как открыт туннель CONNECT, и каждый обмен проходит весь путь через выходной адрес. Это одна из причин, почему первый запрос через прокси длится дольше, чем следующие в том же соединении.
Прокси не меняет ваш отпечаток TLS
Набор версий, шифров и расширений в ClientHello образует отпечаток TLS, по которому сайт может отличить браузер от скрипта. Туннель передает ClientHello без изменений, поэтому сайт видит отпечаток вашей программы, а не прокси. Смена IP его не меняет.
Как проверить соединение и типичные ошибки
Выполните curl -v https://example.com: в выводе будет версия TLS, шифр и данные сертификата, в том числе кто его выдал и когда он истекает. Команда openssl s_client -connect example.com:443 -servername example.com показывает всю цепочку сертификатов.
- Флаг
-kили--insecureв curl отключает проверку и прячет проблему вместо того, чтобы ее решить. - Если издателем сертификата указан ваш антивирус, это он сам проверяет HTTPS, и прокси здесь ни при чем.
- Просроченный сертификат на самом сайте даст ту же ошибку и с прокси, и без него.
Другие причины собраны на странице ошибки сертификата.
Вопросы и ответы
Видит ли прокси мои пароли на сайтах?
Нет, если сайт работает через HTTPS: данные идут внутри зашифрованного туннеля между вашей программой и сайтом.
Почему браузер пишет об ошибке сертификата?
Чаще всего из-за неправильного времени на устройстве, антивируса или настроек сети. Исправный прокси сертификаты не подменяет.
Связанные термины
Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ
Регистрация за минуту, доступы сразу после оплаты.