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 ГБ

Реєстрація за хвилину, доступи одразу після оплати.

Створити акаунт