Перейти к содержимому
ecdsa.com

SNI (Server Name Indication)

Расширение TLS (RFC 6066, § 3, расширение 0), в котором клиент указывает нужный ему хост, чтобы на одном IP-адресе можно было обслуживать много сертификатов; если не используется Encrypted Client Hello, оно передаётся в открытом виде.
Другие написанияServer Name Indicationserver_nameTLS SNI

Клиент помещает в server_name DNS-имя хоста (не IP-адрес: RFC 6066 запрещает передавать в этом поле адреса); по нему сервер выбирает сертификат и конфигурацию. Без SNI серверы отдают сертификат по умолчанию, и это обычная причина ошибки «certificate is for the wrong host», когда клиент не передаёт SNI: например, старые версии openssl s_client без -servername или неправильно настроенные HTTP-клиенты.

Сети на пути трафика видят имя, передаваемое в открытом виде, и используют его для фильтрации, цензуры и аналитики. Encrypted Client Hello (RFC 9849) переносит настоящее имя во внутренний зашифрованный ClientHello, а во внешнем показывает только общее публичное имя.

Стандарты и ссылки

Все термины