Что происходит, когда браузер не поддерживает SNI
Казалось бы, простой вопрос, но, тем не менее, действительный.
Что именно происходит, когда браузер, который не поддерживает SNI, пытается посетить сайт, настроенный для принудительного использования SSL через SNI.
Спасибо
4 ответа
Это зависит от того, как ваш веб-сервер реагирует на получение запроса HTTPS без SNI. (Если вы хотите проверить его, вы можете смоделировать браузер без SNI с openssl. Требуются базовые знания протокола HTTP.)
С IIS 10 происходит следующее:
Если настроен "сайт SSL по умолчанию" (сайт, связанный с портом 443 без имени хоста), клиент без SNI увидит:
- сертификат SSL-сайта по умолчанию (неправильный) (обычно это приводит к предупреждению о сертификате, если вы не настроили сертификат SSL-сайта по умолчанию для включения SAN для всех сайтов, размещенных на вашем IP-адресе), и
- содержание запрошенного (правильного) сайта (после того, как пользователь отклонил предупреждение сертификата).
Это имеет смысл:
- Рукопожатие SSL происходит перед передачей HTTP-запроса. Таким образом, без поддержки SNI из браузера у сервера нет другого выбора, кроме как вернуть сертификат SSL-сайта по умолчанию.
- После установления SSL-соединения (с использованием "неправильного" сертификата) сервер получает HTTP-запрос и считывает запрошенное имя хоста через
Host:
заголовок и возвращает правильное содержание.
Если не настроен "SSL-сайт по умолчанию", соединение будет закрыто.
(Источник: только что протестировал его на старой виртуальной машине Windows XP IE8.)
Он не сможет загрузить сайт, это точно. Вот почему в ближайшее время ни один крупный сайт не перейдет на HTTPS-сайт, размещенный в SNI. IE6 и IE7 в XP кажутся самыми большими старыми браузерами, которые не поддерживают SNI.
Если вы можете заполучить браузеры, не поддерживающие SNI, вы можете увидеть, что происходит, перейдя по https://alice.sni.velox.ch/
Также важно, какое серверное программное обеспечение вы используете. С Apache браузеры без поддержки SNI просто получат первый настроенный веб-сайт (и, вероятно, предупреждение о несоответствии имени хоста).
Вероятно, он подключится к виртуальному хосту SSL по умолчанию. Другими словами, тот же сайт, который вы увидите, подключившись по IP: https://1.2.3.4/
Я только что проверил это, используя IE 4.0, работающий на Windows NT 4 Workstation. Мой сайт, размещенный по адресу http://www.nosupportlinuxhosting.com/, отлично загружается. Я не уверен, что их хостинг отвечает критериям, указанным выше, но их страница "Ограничения" показывает, что это так. Я немного удивлен, страница загружена.