Сегодня в очередной раз довелось разворачивать центр сертификации и когда веб-интерфейс выдал мне запрос авторизации, во мне взыграл перфекционизм и желание безопасности, а передача логина и пароля по HTTP ни как в это не укладывается. Вот и решил настроить редирект на HTTPS.
1 Что мы имеем.
Из коробки IIS этого не умеет. «Перенаправление протокола HTTP» в настройках сайта — не то, настроив его на https адрес нашего сайта мы в браузере получим сообщение о циклическом перенаправлении. Для добавления нужного функционала устанавливаем дополнительный модуль к IIS отсюда https://www.iis.net/downloads/microsoft/url-rewrite
скачайте под свой язык и разрядность MSI-пакет и установите его.
Перезапустите IIS. Если У вас открыт диспетчер служб IIS, закройте его и откройте заново, если просто обновить страницу, новый модуль не появляется.
2 Находим новый ярлык в консоли.
Внастройках сайта в разделе «IIS» найдите «Переопределение URL-адресов».
3 Создаем правило
Нажимаем «Добавить правило» и выбираем «Пустое правило»
В шаблоне указываем (.*) и ставим галку «не учитывать регистр»
В блоке «Условия» выставляем «Совпадение со всеми» и справа жмем «Добавить»
Ввод условия {HTTPS}
Проверить если взодная строка — Соответствует шаблону
Шаблон - ^OFF$
В блоке «действие»
Тип действия — перенаправление
URL-адрес перенаправления — https://{HTTP_HOST}/{REQUEST_URI}
Добавить строку запроса — убираем
Типпеенаправления — Постоянное(301)
С настройкой правила — всё, наимаем «применить» и всё должно заработать, по крайней мере у меня заработало.
4 небольшое замечание по безопасности
Если у вас на сайте запрашивается авторизация, то перенаправление произойдет до запроса авторизации, что очень кстати.