После того, как вы установили SSL сертификат на веб сайте IIS, нужно настроить правило автоматического перенаправления всех входящих незащищенных HTTP запросов на защищенные URL адреса HTTPS.
Для настройки редиректа трафика в IIS нужно скачать и установить модуль IIS URL Rewrite Module 2.1 (https://www.iis.net/downloads/microsoft/url-rewrite).
Затем откройте консоль Internet Information Services Manager (
InetMgr.exe
) выберите ваш сайт.
Выберите секцию SSL Settings и проверьте что опцию Requre SSL не включена, иначе это вызовет конфликт с правилом перенаправления URL Rewrite (будут появляться ошибки 403.4 forbidden).
Затем перейдите в секцию настройки URL Rewrite.
Создайте новое правило Add Rule -> Blank rule.
Укажите имя правила и измените значения параметров:
- Requested URL ->
Matches the Pattern
- Using ->
Wildcards
- Pattern ->
*
В блоке Conditions измените Logical Grouping -> Match All и нажмите Add. Укажите
- Condition input ->
{HTTPS}
- Check if input string ->
Matches the Pattern
- Pattern ->
OFF
- Ignore case:
включено
Теперь в блоке Action выберите:
- Action Type ->
Redirect
- Redirect URL ->
https://{HTTP_HOST}{REQUEST_URI}
- Redirect type ->
Permanent (301)
Сократите правило и перезапустите IIS командой:
iisreset
Откройте браузер и попробуйте открыть ваш сайт по HTTP адресу, вас должно автоматически перенаправить на HTTPS URL.
Также вы можете вручную указать правила редиректа HTTP запросы на HTTPS адреса в файле web.config:
<configuration> <system.webServer> <rewrite> <rules> <rule name="rewrite_rule_Redirect_HTTP_to_HTTPS" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTPS}" pattern="OFF" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Такое правило редиректа HTTP на HTTPS в IIS будет работать на актуальных версиях Windows Server 2022,2019, 2016 и Windows 10,11.