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

Оптимальная конфигурация IIS для перенаправления SSL с несколькими установленными сертификатами

У меня есть конфигурация IIS7 / WinServer2008 с установленным подстановочным сертификатом SSL (* .mydomain.com). Веб-сервер содержит несколько веб-сайтов, каждый из которых настроен для маршрутизации через заголовок хоста с одного и того же IP-адреса (назовите его IP1). Некоторые сайты настроены на использование SSL, а некоторые нет.

Так что я...

a.mydomain.com -> SSL
b.mydomain.com -> non-SSL
c.mydomain.com -> SSL
d.mydomain.com -> non-SSL
e.mydomain.com -> non-SSL

и т.д...

Для приведенных выше примеров сайтов A и C (сайты SSL) я хотел, чтобы стандартные URL-адреса HTTP перенаправляли на HTTPS. Итак, в корне IIS (красная стрелка) я настроил параметры страниц ошибок, добавив собственный код состояния 403.4 (см. Настройки ниже).

Содержимое файла redirectHttpToHttps.htm ...

<html>
<head><title>Redirecting...</title></head>
<script language="JavaScript">
function redirectHttpToHttps()
{
    var httpURL= window.location.hostname + window.location.pathname + window.location.search;
    var httpsURL= "https://" + httpURL;
    window.location = httpsURL;
}
redirectHttpToHttps();
</script>
<body>
</body>
</html>

Затем для сайтов A и C я заменил старые привязки на привязку SSL (направленную специально на IP1) и установил для параметров SSL значение «Требовать SSL».

Так что все отлично работает. Сайт А перенаправляет http://a.mydomain.com к https://a.mydomain.com и аналогично сайт C делает то же самое.

Теперь у меня есть сертификат SSL без подстановочных знаков, который я могу добавить. Это для сайта, привязанного к aaa.customerdomain.com. Поэтому я добавил сертификат на свой сервер IIS и изменил привязку сайта aaa.customerdomain.com, чтобы использовать привязку SSL с новым сертификатом и с новым IP2.

Итак, теперь, если я перейду к https://aaa.customerdomain.com, все отлично работает. Однако я не знаю, как мне получить http://aaa.customerdomain.com для перенаправления на версию SSL.

Может ли кто-нибудь помочь мне правильно настроить IIS, чтобы я мог выполнить всю эту работу?

Для обработки различных типов перенаправления в IIS попробуйте использовать модуль перезаписи URL

http://www.iis.net/downloads/microsoft/url-rewrite

Затем добавьте это в веб-конфигурацию для каждого сайта для перенаправления http на https:

<rule name="Redirect to HTTPS" stopProcessing="true">
  <match url="(.*)" />
    <conditions><add input="{HTTPS}" pattern="^OFF$" />
    </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>

Вы также можете сделать это с помощью графического интерфейса через интерфейс модуля перезаписи URL-адресов IIS: