Несоответствие SSL-сертификатов в IE 7+, хорошо в Firefox 3.6+ - PullRequest
5 голосов
/ 15 июня 2010

У нас есть сайт www.name1.domain.com, для которого мы успешно создали и внедрили сертификат SSL.Затем мы добавили еще один сайт, www.name2.domain.com, и наблюдаем странное поведение в IE7 и IE8 (удивительно!).

По сути, IE7,8 сообщает о несоответствии имени хоста, когда мы переходим кhttps://www.name2.domain.com/.Когда я добавляю и проверяю этот сертификат в IE для этого домена, имя хоста неверное, но оно относится к более старому имени хоста, т.е. www.name1.domain.com.

Firefox не имеет этой проблемыи подбирает правильное имя хоста www.name2.domain.com для второго сайта без проблем.

Есть идеи, почему IE плохо себя ведет (кроме нахальных (-:)?

Ответы [ 2 ]

7 голосов
/ 21 сентября 2011

Ваша проблема в том, что Internet Explorer в Windows XP (и, возможно, в других программах) не поддерживает SNI.

Я только что столкнулся с той же проблемой - в основном Firefox и Chrome в порядке и получают правильный сертификат, а Internet Explorer - нет. Потом я немного посмотрел и увидел это в Википедии, среди прочего:

Браузеры с поддержкой индикации имени сервера TLS [7] Интернет Explorer 7 или более поздней версии, в Windows Vista или более поздней версии. Не работает на Windows XP, даже Internet Explorer 8.

Итак, ваша комбинация apache / openSSL поддерживает SNI и может это делать, а Windows XP - нет.

Мое решение состоит в том, что я ставлю основной поддомен первым в конфигурации VirtualHost, а вторым - меньше. По крайней мере, есть меньше объяснений клиентам о том, почему это всплывает. Я не знаю, сработает ли это для вас.

2 голосов
/ 25 июня 2011

Firefox поддерживает запуск SSL через один и тот же порт, 443 (с использованием одного и того же IP) для двух виртуальных хостов (в Apache), но IE7 этого не делает.

http://www.eggheadcafe.com/software/aspnet/36069240/sni-support.aspx

====

http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts2

Почему невозможно использовать виртуальный хостинг на основе имен для идентификации различных виртуальных хостов SSL?Виртуальный хостинг на основе имен - это очень популярный метод идентификации различных виртуальных хостов.Это позволяет использовать один и тот же IP-адрес и номер порта для разных сайтов.Когда люди переходят на SSL, кажется естественным предположить, что один и тот же метод может использоваться для множества разных виртуальных хостов SSL на одном сервере.

Это довольно шокирует, когда узнаешь, что это невозможно.

Причина в том, что протокол SSL является отдельным уровнем, который инкапсулирует протокол HTTP.Таким образом, сеанс SSL - это отдельная транзакция, которая происходит до начала сеанса HTTP.Сервер получает запрос SSL на IP-адрес X и порт Y (обычно 443).Поскольку запрос SSL не содержит никакого поля Host:, сервер не может решить, какой виртуальный хост SSL использовать.Обычно он просто использует первый найденный файл, который соответствует указанному порту и IP-адресу.

Конечно, вы можете использовать виртуальный хостинг на основе имени для идентификации многих виртуальных хостов, не использующих SSL (всепорт 80, например), а затем иметь один виртуальный хост SSL (на порт 443).Но если вы сделаете это, вы должны обязательно указать номер порта, отличный от SSL, в директиве NameVirtualHost, например,

NameVirtualHost 192.168.1.1:80. В число других решений для обхода проблемы входят:

Использование отдельного IPадреса для разных хостов SSL.Использование разных номеров портов для разных хостов SSL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...