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

Установить IIS 7.5 с несколькими привязками веб-сайтов и SSL?

В IIS 7.5 я пытаюсь добиться этого с помощью двух веб-сайтов:

Default Web Site is bound to:

(blank host header port 80 - http)
(blank host header port 443 - https)
go.example.com
www71.example.com
the IP address of go.example.com

2nd web site "Beta" is bound to:

beta.example.com
(blank host header port 443 - https)
* using blank only because it doesn't seem to be possible to 
  bind https to a named host header

И оба должны работать с SSL. Но у меня такие проблемы:

  1. Когда я набираю beta.example.com, я вижу сайт go.example.com
  2. Кажется, я не могу добавить привязку SSL к обоим веб-сайтам одновременно (у меня есть один подстановочный сертификат * .example.com). Бета-сайт даже не запустится, если я добавлю к нему привязку https.

Вот как я это настроил:

Как правильно его настроить?

Без Расширения SNI, вы можете привязать только один сертификат SSL к паре IP: порт. Если вам нужно запустить 2 HTTPS на одном IP-адресе - привяжите их к разным портам, а затем обратитесь к такому сайту с указанием порта в URL-адресе (например, https://beta.example.com:444/). Вы можете без проблем использовать один и тот же подстановочный сертификат на разных портах.

Если у вас более одного сайта с пустым именем хоста (для протокола HTTP), то сайт с меньшим идентификатором должен быть «для всех». То же самое и с HTTPS - тот, у кого более низкий идентификатор, должен перехватывать все запросы на этом порту.

С другой стороны, у вас есть подстановочный сертификат, и я видел одну статью, в которой говорится, что это можно сделать в IIS7: http://www.sslshopper.com/article-ssl-host-headers-in-iis-7.html . Я сам пробовал это раньше, но у меня это не сработало - довольно часто IIS выдавал ошибку 5xx при доступе даже к статическим файлам (что переставало происходить, когда мы привязывали другой хост к другому порту). Может, с тех пор это поправили.

Индикация имени сервера пока не поддерживается в IIS 7 или 7.5. Надеюсь, они реализовали эту функцию в следующих IIS: http://forums.iis.net/p/1161905/1923273.aspx

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

После того, как сертификат SAN импортирован в IIS, вы можете использовать инструмент appcmd, чтобы указать дополнительную привязку или вручную отредактировать applicationHost.config в разделе, например

<site name="SomeSite" id=9>
   <bindings>
     <binding protocol="http" bindingInformation="*:80:SomeSite"/>
     <binding protocol="https" bindingInformatoin="*:443:SomeSite" />
   </bindings>
</site>