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

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

У меня есть конфигурация IIS7/WinServer2008 с установленным wildcard 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) я хотел, чтобы стандартные HTTP URL-адреса перенаправлялись на HTTPS. Поэтому в корне IIS (красная стрелка) я настроил параметры страниц ошибок, добавив пользовательский код состояния 403.4 (см. настройки ниже).

Добавлен код статуса клиента 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-сертификат non-wildcard, который нужно ввести в микс. Это для сайта, привязанного к aaa.customerdomain.com. Поэтому я добавил сертификат на свой сервер IIS и изменил привязку сайта aaa.customerdomain.com, чтобы использовать привязку SSL с новым сертификатом и против нового IP2.

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

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

решение1

Для обработки различных типов перенаправлений в 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: введите описание изображения здесь введите описание изображения здесь

Связанный контент