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 ГБ
Реєстрація за хвилину, доступи одразу після оплати.