Після встановлення 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 та переконайтеся, що опція "Require 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.