Как работает TLS handshake и что такое сертификаты?
HTTP и HTTPS
TLS handshake согласует ключи шифрования и аутентифицирует сервер цепочкой сертификатов до доверенного корня; в TLS 1.3 рукопожатие укладывается в один RTT.
Ход рукопожатия (TLS 1.3)
- ClientHello: поддерживаемые версии, шифры и ключевой материал ECDHE.
- ServerHello плюс сертификат и ключевой материал сервера: из обмена Диффи-Хеллмана обе стороны выводят общий секрет, дальше идёт симметричное шифрование.
- Сервер подписью доказывает владение приватным ключом; клиент проверяет цепочку.
Сертификаты
- X.509-сертификат связывает домен с публичным ключом и подписан центром сертификации (CA).
- Доверие строится цепочкой: сертификат сайта → промежуточный CA → корневой CA из хранилища системы.
- Проверяются срок действия, hostname через SAN и отзыв (CRL или OCSP; браузеры всё чаще используют собственные списки отзыва — CRLSets, CRLite).
Что даёт TLS
Конфиденциальность (шифрование), целостность (MAC в записях) и аутентичность сервера — защита от MITM. Клиентские сертификаты (mTLS) — опционально.
Коротко для собеседования
Рукопожатие решает две задачи: договориться об общем ключе через ECDHE и убедиться, что сервер настоящий, по цепочке сертификатов до доверенного корня. TLS 1.3 быстрее 1.2 на один RTT и требует forward secrecy; типичная ошибка в коде — отключённая проверка сертификата.