2009-05-27 4 views
18

В настоящее время мне нужно иметь 2 поддомена в одном домене под SSL.
Оба субдомены (WWW и присоединенные) находятся на том же сервере IIS, под тем же IP, и каждый из них определил значение заголовка узла (www.mydomain.com и affiliate.mydomain.com)Несколько поддоменов с SSL под IIS

Первый субдомен (www), который по умолчанию работает, отлично работает с SSL и без него.
Второй субдомен отлично работает под HTTP.

Проблема заключается в том, что я только что купил и установил сертификат SSL для партнерской подобласти, и когда вы идете https://affiliate.mydomain.com, вы попадаете на http://www.mydomain.com

Я предполагаю, что проблема заключается в том, что я могу 't указать значение заголовка узла для SSL? (в диалоговом окне, где я обычно устанавливаю значение заголовка хоста, эта опция отсутствует в нижней части, посвященной SSL).

Что я могу сделать по этому поводу? Должен ли я иметь каждый поддомен в отдельном IP-адресе? Разве это вообще невозможно?

Спасибо! Daniel

ответ

16

«Я предполагаю, что проблема заключается в том, что я не могу указать значение заголовка узла для SSL»

Вы угадали. Вам понадобятся два IP-адреса.

+0

Похоже, что в новых версиях IIS вы можете использовать один IP-адрес: https://serverfault.com/a/566433/381304 –

5

Я не уверен, какой веб-сервер вы используете, но в IIS 6 на сервере Windows 2003 вы можете использовать заголовки хостов для сайтов SSL, что позволяет им находиться на одном IP-адресе.

http:// www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/596b9108-b1a7-494d-885d-f8941b07554c.mspx?mfr=true

EDIT: Это будет работать только в случае, если сертификат является подстановочным. В противном случае субдомен «партнер» попытается использовать тот же сертификат, что и поддомен «www», и посетители получат предупреждение.

+0

он не имеет подстановочного сертификата. –

+0

Это хороший момент; подстановочный знак может работать, потому что оба узла находятся в одном домене. – erickson

+0

Это сработало, но не для моей ситуации. По-видимому, для этого мне нужен сертификат подстановки. Когда я это сделал, мой дочерний субдомен теперь больше не перенаправляется на www, но я получаю предупреждение о том, что сертификат SSL для www ... Хуже того, что у меня проблемы с отменой того, что я сделал :-) I Посмотрите, работает ли отдельная IP-страница. –

10

Проблема связана с тем, как работает HTTPS.

Виртуальный хостинг основан на заголовке «Host», представленном в HTTP/1.1. Это часть протокола HTTP, но с точки зрения протокола SSL уровень HTTP является «данными приложения» и не может передаваться до тех пор, пока не будет завершено подтверждение SSL.

Однако сертификат сервера представлен во время рукопожатие. HTTP-сервер еще не видел заголовок «Host», поэтому он не знал, какой сертификат отправить. Использование отдельного IP-адреса работает, потому что это видно на уровне IP ниже SSL.


Update: Там это новое расширение TLS, что позволяет клиентам, чтобы указать сервер они намереваются использовать во время рукопожатия. See dlongley's answer для получения дополнительной информации.

+0

Спасибо за объяснение! –

0

В конкретной ситуации, где вам нужны 2 поддомена того же домена, сертификат WildCard имеет для работы ...Я использую подстановочный сертификат с 3 лет для десятков сайтов, и ни один из клиентов не сообщил об ошибках

Если у вас есть что-то, что означает сертификат для «www», то ваш сертификат не является подлинным подстановочным сертификатом, или вы испытываете какие-то проблемы с кешированием браузера или вы используете 2 копии сертификата, и вы обновляете только один из них, или вы забыли перезапустить сервер, или .. я не знаю :)

+0

У меня нет подстановочного сертификата –

3

Это, вероятно, вам не поможет, но надеюсь, это информативно.

Существует расширение к протоколу TLS, которое некоторые клиенты TLS используют под названием Server Name Indicication (SNI). Это расширение позволяет клиентам TLS указывать имя хоста сервера, с которым они пытаются связаться. Поэтому, когда клиент подключается и отправляет сообщение ClientHello в протоколе TLS, сервер может решить, с каким сертификатом отвечать. Это делает виртуальные серверы SSL/TLS возможными на одном IP-адресе.

OpenSSL предоставляет функции обратного вызова, позволяющие вам читать, какое имя хоста отправлено клиентом, и обрабатывать соответствующий сертификат, но, к сожалению, я понятия не имею, возможно ли это с помощью IIS.

Смежные вопросы