Сети

HTTPS и TLS: что происходит до первого HTTP-запроса

Сертификат, цепочка доверия, SNI, ALPN и автоматическое продление.

HTTPS — это HTTP поверх TLS. До того как браузер отправит обычный HTTP-запрос, клиент и сервер должны согласовать параметры защищённого соединения, проверить сертификат и сформировать общие ключи шифрования.

Что подтверждает сертификат

Сертификат связывает открытый ключ с доменным именем. Клиент проверяет, что имя из URL присутствует в Subject Alternative Name, срок сертификата действителен, а подпись ведёт к доверенному центру сертификации.

Цепочка доверия

Сервер обычно отправляет leaf-сертификат и промежуточные сертификаты. Корневой CA уже находится в доверенном хранилище ОС или браузера.

SNI

TLS handshake начинается до HTTP, поэтому сервер ещё не видел заголовок Host. SNI позволяет клиенту заранее сообщить доменное имя, чтобы сервер выбрал правильный сертификат.

ALPN

Через ALPN стороны договариваются, какой протокол использовать поверх TLS: например, HTTP/1.1 или HTTP/2. Для HTTP/3 используется QUIC поверх UDP.

Автоматическое получение сертификатов

ACME позволяет серверу автоматически подтвердить контроль над доменом, выпустить сертификат и затем продлевать его. Современные web-серверы способны полностью автоматизировать этот процесс.

Практический вывод

При проблемах HTTPS полезно разделять уровни: DNS, TCP-доступность, TLS handshake, проверку сертификата и только затем HTTP. curl -v и openssl s_client позволяют увидеть большую часть этой цепочки.

Материал предназначен для общего технического понимания. Конкретная конфигурация зависит от платформы, версии ПО и требований среды.