Рассмотрим установку IIS6 с несколькими веб-сайтами. Каждый предназначен для отдельного поддомена со своим собственным сертификатом (а не сертификатом с подстановочными знаками). У каждого из них правильно указан заголовок хоста.
foo.example.com
- порт 443. Требуется SSL с 128 бит. Работает должным образом! Он правильно представляет свой сертификат SSL браузеру. Настроен для конкретный IP-адрес.
bar.example.com
- порт 443. Требуется SSL с 128 бит. Настроен для все не назначено адреса. При просмотре страницы свойств IIS полностью отображается сертификат для bar.example.com
на кнопке Просмотр сертификата. Это НОВЫЙ веб-сайт, на котором возникают проблемы с сертификатами. Он представляет сертификат для foo.example.com. Ой!
альтернативный текст http://www.imagechicken.com/uploads/1251156847014486300.png
Вопрос: Можно ли иметь несколько поддоменов, работающих на разных веб-сайтах с сертификатами SSL на одном и том же порте (443)? Как бы вы настроили 2 веб-сайта на один и тот же диапазон «все неназначенные» для одного и того же порта (443)?
Обновить: игнорируя ошибку сертификата, при просмотре https://bar
, обслуживаемый контент из https://foo
сайт.
Когда НЕ используется SSL, переход к http://bar
обслуживает правильный контент из bar
.
Этому серверу DMZ назначен только один адрес.
Сертификаты SSL привязаны к внутреннему IP-адресу веб-сервера, а не к внешним IP-адресам.
Допустим, у вас есть foo.example.com
привязан к Public IP A
и bar.example.com
на Public IP B
, но ваш веб-сервер имеет только IP-адрес 192.168.0.1
Приходит ли запрос IP A
или IP B
, он по-прежнему будет иметь адрес 192.168.0.1. Это означает, что у IIS нет другого выбора, кроме как использовать сертификат, назначенный foo.example.com
.
Чтобы обойти эту проблему, вам необходимо назначить вашему веб-серверу несколько IP-адресов. Это легко сделать. Поговорите со своим системным администратором, чтобы удалить некоторые IP-адреса из диапазона DHCP (или спросите его / ее, какие из них вы можете использовать), затем перейдите к своим свойствам для сетевой карты (Панель управления> Сетевые подключения) и перейдите к свойствам для TCP / IP.
В первую очередь вам нужно будет включить статический IP-адрес (я надеюсь, что это все равно будет сервером), а затем нажмите «Дополнительно» и в поле «IP-адреса» нажмите «Добавить» и введите новые IP-адреса. вы были назначены вашим системным администратором (скажем, 192.168.0.2
).
Затем на вашем маршрутизаторе вам необходимо убедиться, что запросы от IP A
на порт 443 перейдите в 192.168.0.1
и что все остальные запросы на порт 443 идут в 192.168.0.2
.
Затем в вашей конфигурации IIS вам необходимо привязать сертификат SSL из foo.example.com
к 192.168.0.1
, а остальное привяжите к 192.168.0.2
(или оставьте как «Все неназначенные»).
Если это не сработает или вы уже настроили этот параметр, обновите свой вопрос и оставьте комментарий, чтобы сообщить нам.
Обновить: Я только что видел ваши комментарии, спасибо за обновление. Вам нужно будет убедиться foo.example.com
и bar.example.com
находятся на двух разных публичных IP-адресах. Причина в том, что поскольку пакеты зашифрованы, вы не можете использовать маршрутизацию на основе имени хоста для отправки запроса на правильный IP-адрес (я считаю, что это так. Если кто-то знает другое, дайте мне знать). Единственная часть запроса, которая видна маршрутизаторам, - это IP-адрес назначения. Вот почему у вас может быть только один SSL на IP-адрес. Таким образом, вам понадобится общедоступный IP-адрес, чтобы это работало, и в вашем DNS запись A для bar.example.com
это отличается от foo.example.com
.
В поддержку Farseeker, от Thawte:
Хотя сертификат не привязан к IP-адресу, уникальный IP-адрес должен быть назначен домену как SSL основан на IP и не разрешает виртуальные хосты на основе имен
Если у вашего сервера только 1 IP-адрес, значок "Все не назначены"ничего не может сделать, кроме как указывать на тот же единственный IP-адрес.
Похоже, что «bar» переходит на тот же IP-адрес, что и «foo». Поскольку «foo» специально настроен для ответа по этому IP-адресу, он захватывает запрос. «Заголовки хоста» не применяются для запросов SSL (поэтому в IIS есть отдельная панель для стандартных запросов с сопоставлением ip / host / port и другая для сопоставления ssl ip / port, но без имени хоста).
Проверьте свои записи DNS и убедитесь, что «bar» использует IP, отличный от «foo», и ваша проблема должна быть исправлена.
Когда я настраиваю сайты SSL, я даю каждому домену, которому требуется SSL, свой собственный IP-адрес, а для всего остального использую «общий» IP. Записи DNS, конечно, должны использовать правильный адрес, чтобы правильная запись сайта в IIS обрабатывала трафик.