HSTS: Как настроить с помощью IIS

HSTS (HTTP Strict Transport Security) – это механизм веб-безопасности, который помогает защитить веб-сайты от атак типа «man-in-the-middle» (MITM)․ Он заставляет браузеры подключаться к сайту только через HTTPS, даже если пользователь ввел в адресной строке HTTP․ Это предотвращает перенаправление на небезопасные HTTP-версии сайта, которые могут быть использованы злоумышленниками для перехвата данных․

Зачем нужен HSTS?

Без HSTS, браузер сначала пытается подключиться к сайту через HTTP, а затем, получив редирект на HTTPS, переходит на защищенное соединение․ В течение этого первоначального HTTP-запроса, злоумышленник может перехватить данные или подменить содержимое сайта․ HSTS устраняет эту уязвимость, инструктируя браузер всегда использовать HTTPS․

Предварительные требования

Прежде чем настраивать HSTS, убедитесь, что:

  • У вас установлен и настроен SSL/TLS сертификат для вашего сайта․
  • Ваш сайт доступен по HTTPS․
  • Все ссылки на вашем сайте используют HTTPS․

Настройка HSTS в IIS

Настройка HSTS в IIS выполняется с помощью заголовка HTTP-ответа․ Существует два способа его добавления:

Использование URL Rewrite Module

URL Rewrite Module – это мощный инструмент для управления URL-адресами в IIS․ Он позволяет добавлять, изменять и перенаправлять URL-адреса, а также добавлять HTTP-заголовки․

  1. Установите URL Rewrite Module: Если он еще не установлен, скачайте и установите его с официального сайта Microsoft: https://www․iis․net/downloads/microsoft/url-rewrite
  2. Откройте IIS Manager: Запустите диспетчер IIS․
  3. Выберите сайт: В левой панели выберите сайт, для которого вы хотите настроить HSTS․
  4. Откройте URL Rewrite: В центральной панели дважды щелкните по значку «URL Rewrite»․
  5. Добавьте правило: В правой панели нажмите «Add Rule․․․»․
  6. Выберите «Add a New Rule․․․»: Выберите этот пункт․
  7. Выберите «Blank rule»: В разделе «Rule Template» выберите «Blank rule»․
  8. Настройте правило:
    • Name: Введите имя для правила, например, «HSTS»․
    • Match URL:
      • Requested URL: Matches the Pattern
      • Using: Regular Expressions
      • Pattern: ․*
      • Ignore case: Checked
    • Conditions: Оставьте пустым․
    • Action:
      • Action type: Add
      • Action Properties:
        • Response Header Name: Strict-Transport-Security
        • Response Header Value: max-age=31536000; includeSubDomains; preload
  9. Нажмите «Apply»: Примените изменения․

Разъяснение значения заголовка:

  • max-age=31536000: Указывает браузеру, как долго (в секундах) запоминать, что к сайту нужно подключаться только через HTTPS․ 31536000 секунд – это один год․
  • includeSubDomains: Применяет HSTS ко всем поддоменам сайта․
  • preload: Позволяет добавить ваш сайт в список предварительной загрузки HSTS, который встроен в большинство современных браузеров․ Это обеспечивает защиту даже при первом посещении сайта․ Для добавления в список предварительной загрузки необходимо соответствовать определенным требованиям и подать заявку на https://hstspreload․org/

Использование Web․config

Вы также можете настроить HSTS, добавив соответствующий заголовок в файл `web․config` вашего сайта․

Откройте файл `web․config` и добавьте следующий код в секцию ``:

<system․webServer>
 <httpProtocol>
 <customHeaders>
 <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
 </customHeaders>
 </httpProtocol>
</system․webServer>

Сохраните файл `web․config` и перезапустите сайт в IIS․

Проверка настройки HSTS

После настройки HSTS, убедитесь, что она работает правильно․ Вы можете использовать следующие инструменты:

  • Онлайн-инструменты: Существуют онлайн-инструменты, которые позволяют проверить наличие заголовка HSTS в HTTP-ответе вашего сайта, например: https://securityheaders․com/
  • Инструменты разработчика в браузере: Откройте инструменты разработчика в вашем браузере (обычно нажатием клавиши F12) и перейдите на вкладку «Network»․ Обновите страницу и проверьте, присутствует ли заголовок `Strict-Transport-Security` в HTTP-ответе․

Важные замечания

  • Будьте осторожны с `includeSubDomains` и `preload`: Прежде чем включать эти опции, убедитесь, что все ваши поддомены и все ссылки на вашем сайте используют HTTPS․ В противном случае, пользователи могут столкнуться с проблемами при доступе к вашему сайту․
  • Тестирование: Тщательно протестируйте HSTS на тестовом окружении, прежде чем применять его к рабочему сайту․
  • Отмена HSTS: Если вам необходимо отключить HSTS, вам придется уменьшить значение `max-age` до 0․ Однако, браузеры могут кэшировать HSTS-заголовок, поэтому потребуется некоторое время, чтобы изменения вступили в силу․