Я пытаюсь принудительно перевести конечных пользователей на HTTPS при посещении нашего сайта. У меня включен HSTS в IIS на уровне сайта и приложения. У меня настроено перенаправление HTTP на уровне сайта на https://ourdomain.com
. Я могу зайти на домашнюю страницу нашего сайта и увидеть заголовок Strict-Transport-Security: max-age: XXXX; includeSubDomains
, но я не получаю перенаправления с http://internal-hostname/
на https://ourdomain.com
.
я прочелПоддержка HTTP Strict Transport Security (HSTS) в IIS 10.0 версии 1709, и я считаю, что я правильно выполнил шаги. После включения HSTS я ожидал автоматического перенаправления с HTTP на HTTPS. Я также прочиталЛучший способ перенаправить все HTTP на HTTPS в IIS, но этот вопрос был посвящен IIS7. С тех пор многое изменилось в плане поддержки HSTS, но, возможно, мои ожидания относительно автоматического перенаправления ошибочны.
Системная информация:
- Windows Server 2019 (версия 1809)
- ИИС 10.0.17763.1
Что я сделал:
Открыл диспетчер конфигурации IIS.
Щелкните правой кнопкой мыши по «Веб-сайту по умолчанию», выберите «Управление веб-сайтом» и нажмите «Дополнительные параметры».
Включил HSTS, используя следующие настройки:
- Включено: Правда
- IncludeSubDomains: Истина
- Макс. возраст: 31536000
- Предварительная загрузка: Ложь
- Перенаправление HTTP на HTTPS
Нажал «ОК»
Нажмите «Веб-сайт по умолчанию» и выберите «Перенаправление HTTP» в разделе «IIS».
Установите флажок «Перенаправлять запросы на этот адрес» и введите наш HTTPS URL (который является балансировщиком нагрузки, а не этим конкретным веб-сервером).
Перезапустил IIS.
Используя сеанс удаленного рабочего стола на веб-сервере, я открыл Microsoft Edge.
Пошел
http://internal-hostname/
в Эдж.
Ожидаемое поведение:пользователь перенаправляется на https://ourdomain.com
.
Фактическое поведение:браузер загрузил страницу с ошибкой «403.4 Forbidden».
Похоже, HSTS включен, поскольку я получаю ожидаемый Strict-Transport-Security
заголовок HTTP в ответе, но не получаю желаемого перенаправления с HTTP на HTTPS 1 , как указано вRFC6797.
1 Хорошим ответом также может быть то, что «HSTS» — это половинчатое решение в IIS 10, и мне действительно нужно добавить правило перенаправления HTTP.