Назад | Перейти на главную страницу

SSL, IIS: один веб-сайт для нескольких поддоменов и один веб-сайт для домена верхнего уровня (с www или без него))

У меня есть несколько поддоменов, которые должны указывать на один и тот же веб-сайт, а домен верхнего уровня должен указывать на другой веб-сайт. Все они находятся под SSL. Например:

abc.mydomain.com ---> Website A,
def.mydomain.com ---> Website A,
ghi.mydomain.com ---> Website A,
jkl.mydomain.com ---> Website A

mydomain.com ---> Website B,
www.mydomain.com ---> Website B

Я уже приобрел ssl-сертификат с подстановочными знаками и выделенный IP-адрес. Могут ли оба веб-сайта иметь один и тот же IP-адрес или у каждого должен быть свой IP-адрес?

Мне не нужны подстановочные заголовки хостов или сопоставление подстановочных DNS. Каждый раз для каждого нового поддомена я могу добавить новую запись DNS и новый заголовок хоста для веб-сайта A.

В этом случае вам потребуются отдельные порты, если они находятся на одном IP-адресе, или отдельные IP-адреса, если вы хотите, чтобы они были подключены к одному и тому же стандартному порту SSL (443). IIS не поддерживает чтение заголовков хоста и перенаправление с использованием SSL. Вы можете использовать один и тот же подстановочный сертификат без каких-либо проблем, но вам понадобится что-то между IIS и клиентом (например, Microsoft Forefront Threat Management Gateway), чтобы выполнять маршрутизацию по имени хоста через SSL. (Надеюсь это имеет смысл)

Причина, по которой это происходит, заключается в том, что соединение зашифровано, а сертификат проверяется до фактической отправки HTTP-заголовка, поэтому в это время IIS должен знать, какой сайт он использует заранее. Теперь Firefox отправляет имя хоста с начальным запросом на шифрование, но я не уверен, поддерживает ли это IIS (или поддерживает ли это какой-либо другой браузер).

Первые несколько миллисекунд HTTPS-соединения имеет невероятно подробное описание того, как обычно работает HTTPS (с помощью специальной отладочной сборки Firefox). Как видите, несколько абзацев TLS поддерживают расширение имени сервера, но насколько мне известно, IIS не поддерживает это расширение.

Все, что вам нужно сделать, это настроить заголовки хоста SSL: http://www.sslshopper.com/article-how-to-configure-ssl-host-headers-in-iis-6.html

Затем вы можете защитить их все на одном IP-адресе / порту.