Запуск нескольких HTTPS-сайтов под одним IP-адресом – нормальная практика сегодня. Но так было не всегда. Изначально Вам требовался выделенный IP-адрес для каждого домена, который Вы хотели защитить. Однако появление Server Name Indication (SNI) изменило весь ландшафт SSL.
В этой статье мы объясним , что такое SNI, как он работает и почему он может Вам понадобиться. Чтобы лучше понять весь процесс, нам нужно сделать шаг назад во времени, до создания SNI.
Оглавление
- До появления SNI: хосты, основанные на именах, и их несоответствие HTTPS
- Что такое SNI?
- Почему стоит использовать SNI?
- Как работает SNI?
- Каковы преимущества SNI?
- В чем разница между SNI и SAN?
- Сертификаты Wildcard против сертификатов SNI
- Какие браузеры поддерживают SNI?
- Есть ли недостатки у SNI?
- Почему SNI не получила более широкого распространения?
- Что такое зашифрованный SNI (ESNI)?
До появления SNI: хосты, основанные на именах, и их несоответствие HTTPS
Более десяти лет назад лишь небольшая часть веб-сайтов использовала протокол HTTPS. HTTP все еще был королем. Сегодня, если Вы хотите разместить несколько HTTP-сайтов на одном IP-адресе, Вы можете использовать хосты, основанные на именах. Например, если Вы запускаете три HTTP-сайта на одном IP-адресе, когда пользователь подключается к определенному сайту, он использует уникальный HTTP-заголовок, содержащий имя хоста. В ответ Ваш сервер идентифицирует и сопоставляет этот заголовок и отправляет пользователю желаемое место назначения.
Этот подход работает до тех пор, пока в уравнении не появляется HTTPS, а затем он не работает. Поскольку SSL/TLS требует рукопожатия для установления безопасного соединения между клиентом и сервером, HTTP-заголовок с необходимым именем хоста не может быть загружен до завершения рукопожатия. Сервер просто не знает, какой сайт подобрать и на какой отправить пользователя. Вот тут-то SNI и приходит на помощь.
Что такое SNI?
SNI – это расширение протокола TLS (Transport Layer Security), которое позволяет нескольким веб-сайтам использовать один и тот же IP-адрес. Он позволяет веб-серверам размещать несколько сертификатов SSL/TLS на одном IP-адресе, что является существенным преимуществом для сайтов, использующих HTTPS для шифрования общения с пользователями.
Теперь мы все знаем, что TLS – это криптографический протокол, обеспечивающий защиту конфиденциальных данных при транспортировке (а если Вы не знаете, то вот краткий технический обзор сертификатов SSL/TLS), но сам по себе, в определенных ситуациях, TLS далеко не идеален. Одна из таких важных ситуаций – использование нескольких SSL-сертификатов на одном IP-адресе. TLS не сможет этого сделать, если ему не поможет расширение.
Подобно тому, как расширения Вашего браузера добавляют дополнительные возможности и улучшают функциональность, SNI – это расширение протокола TLS/SSL, которое позволяет пользователям размещать несколько SSL-сертификатов на одном IP-адресе. SNI делает это, вставляя HTTP-заголовок в рукопожатие SSL/TLS.
До того, как SNI стал расширением TLS в 2003 году, каждый сайт, который Вы хотели зашифровать, должен был иметь уникальный IP-адрес. Это привело к огромным затратам, но, что еще более тревожно, к быстрому расходованию IP-адресов IPv4. Уникальные IP-адреса не бесконечны. Например, Интернет-протокол версии 4 имеет около четырех миллиардов адресов.
До появления SNI существовали реальные опасения, что адреса IPv4 закончатся до появления нового IPv6. SNI удалось развеять эти опасения и замедлить истощение IPv4. Другие хорошие новости: IPv6 имеет около 340 недециллионов адресов. Это 340, за которыми следуют 36 нулей. Такой суммы должно хватить на обозримое будущее.
Почему стоит использовать SNI?
SNI позволяет владельцам сайтов обеспечить безопасность связи со своими пользователями и клиентами, облегчая управление SSL-сертификатами. Без SNI каждому сайту потребуется уникальный IP-адрес для использования шифрования HTTPS, что может оказаться дорогостоящим для малых предприятий и компаний с ограниченным бюджетом.
SNI также упрощает управление веб-сайтами, поскольку веб-серверы теперь могут размещать несколько сертификатов SSL/TLS на одном IP-адресе. Это означает, что владельцы сайтов могут легко добавлять или удалять сайты со своих хостинг-аккаунтов.
Как работает SNI?
Когда Вы посещаете сайт по протоколу HTTPS, Ваш браузер и сервер сайта должны установить защищенное соединение через рукопожатие SSL/TLS. Во время этого процесса веб-браузер отправляет на сервер сообщение, содержащее имя хоста веб-сайта.
В случае SNI имя хоста сайта включается в сообщение Client Hello, что позволяет серверу выбрать правильный сертификат для использования в сообщении Server Hello. В результате сервер может разместить несколько SSL-сертификатов на одном IP-адресе.
Большинство современных веб-серверов и браузеров поддерживают SNI, но старые версии могут этого не делать. В таких случаях веб-браузер может получить общий SSL-сертификат вместо правильного, что может привести к появлению предупреждений или ошибок.
Каковы преимущества SNI?
SNI изменил весь ландшафт хостинга при установке и управлении SSL-сертификатами. Вот его основные преимущества:
- Многодоменный хостинг. С помощью SNI Вы можете разместить и защитить несколько веб-сайтов на одном сервере и IP-адресе. SNI значительно сокращает расходы на хостинг и упрощает управление SSL.
- Гибкость. SNI обеспечивает гибкость при добавлении или удалении веб-сайтов с сервера без необходимости изменять конфигурацию сервера или получать дополнительные IP-адреса.
- Более эффективное использование ресурсов. SNI позволяет лучше использовать такие ресурсы, как IP-адреса, которые могут быть дефицитными и дорогими. Размещая несколько сайтов на одном IP, Вы замедляете исчерпание IPv4 – основного протокола, который помогает нам подключаться к Сети.
В чем разница между SNI и SAN?
SNI и SAN – оба метода поддержки нескольких SSL-сертификатов на одном сервере. Однако они различаются тем, как они предоставляют эту поддержку. Основное различие между SNI и SAN заключается в том, что SNI – это технология на стороне сервера, в то время как SAN – это функция сертификата.
Как Вы уже знаете, SNI позволяет веб-серверу размещать несколько сертификатов на одном IP-адресе. Когда клиент подключается к серверу, SNI позволяет серверу определить, какой сертификат использовать, основываясь на имени домена, предоставленном клиентом в первоначальном запросе.
SAN, с другой стороны, – это особенность SSL-сертификатов, которая позволяет одному сертификату защищать несколько доменных имен в рамках одной установки. Сертификат SAN включает в себя список дополнительных доменных имен (также известных как альтернативные имена субъектов), которые Вы можете защитить с помощью одного и того же сертификата.
Что касается совместимости, то большинство современных веб-браузеров и серверов поддерживают SNI и SAN. Однако некоторые устаревшие системы могут быть несовместимы с ними.
Сертификаты Wildcard против сертификатов SNI
SSL-сертификат Wildcard обеспечивает безопасность одного домена и всех его поддоменов (неограниченное количество) под одним SSL-сертификатом. Wildcard – это еще одна особенность SSL-цертов, как и SAN. Удобно и экономически выгодно использовать опцию Wildcard SSL, если у Вашего сайта есть несколько поддоменов, например, new.yourwebsite.com или blog.yourwebsite.com.
Сертификатов SNI не существует, поскольку SNI – это не неотъемлемая функция SSL-сертификатов, а расширение TLS на стороне сервера. Если Ваш сервер поддерживает SNI, Вы можете добавить любой тип SSL на несколько доменов с одним и тем же IP-адресом.
Какие браузеры поддерживают SNI?
Теперь SNI совместим с 99% браузеров и всеми основными серверными системами. Chrome, Mozilla, Opera, Safari и менее известные браузеры поддерживают SNI. Вы можете использовать SNI в Apache, Nginx, Ubuntu, Debian, CentOS и многих других популярных системах. Некоторые из библиотек, поддерживающих SNI, – это Open SSL, GnutTLS, Python, Oracle и Java. Если Вам нужно защитить несколько веб-сайтов на одном IP-адресе, используйте SNI в своих интересах.
Что произойдет, если веб-браузер не поддерживает SNI?
Если веб-браузер не поддерживает SNI, он не сможет установить безопасное соединение с сервером, который использует SNI для размещения нескольких сертификатов SSL/TLS. В результате пользователь не сможет зайти на сайт. Более того, пользователь получит сообщение об ошибке, указывающее на то, что данный сайт не является безопасным.
Есть ли недостатки у SNI?
Хотя SNI имеет значительные преимущества, есть и несколько потенциальных недостатков. Во-первых, SNI может быть медленнее, чем использование выделенного IP-адреса или решение без SNI. Это происходит потому, что сервер должен выполнить дополнительный шаг, чтобы определить правильный сертификат SSL/TLS для создания безопасного соединения.
Еще один недостаток заключается в том, что не все веб-браузеры и серверы поддерживают SNI. Если Вы используете устаревший браузер или платформу, Вы можете столкнуться с проблемами совместимости, что может привести к ошибкам или уязвимостям в системе безопасности.
Почему SNI не получила более широкого распространения?
Некоторые организации предпочитают использовать выделенные IP-адреса по соображениям безопасности. Эти меры могут обеспечить дополнительную защиту от кибер-атак, таких как IP-спуфинг. Многие устаревшие системы не поддерживают SNI, так что это тоже фактор. Но по мере того, как шифрование становится повсеместным, внедрение SNI получает все более широкое распространение.
Что такое зашифрованный SNI (ESNI)?
Зашифрованная SNI (ESNI) – это новая технология, призванная устранить некоторые из потенциальных уязвимостей безопасности, связанных с SNI. ESNI шифрует информацию SNI так, чтобы ее не могли перехватить третьи лица, защищая конфиденциальность пользователя и не позволяя злоумышленникам подглядывать за процессом рукопожатия TLS, чтобы определить, какие сайты посещают пользователи.
ESNI пока не очень широко поддерживается веб-браузерами и серверами.
Какие браузеры поддерживают ESNI?
В настоящее время Firefox – единственный популярный браузер, предлагающий поддержку SNI.
Заключение
В этой статье мы рассмотрели указание имени сервера со всех сторон и аспектов. Теперь, когда Вы знаете, что такое SNI, Вы можете использовать его для своих сайтов и проектов. Большинство систем совместимы с SNI, поскольку это необходимое расширение в современной среде веб-хостинга. Поскольку HTTPS является новым веб-стандартом, SNI облегчает переход от устаревшего протокола HTTP.
Сэкономьте 10% на SSL-сертификатах при заказе сегодня!
Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10