Knowledge Base
HSTS: принудительный HTTPS для браузеров
Как работает HSTS
Категория: SSL/TLS · Риск: low
Как работает HSTS
После первого HTTPS-соединения браузер запоминает: «этот сайт всегда по HTTPS». При следующем обращении по HTTP браузер делает внутренний редирект без запроса к серверу.
Защита: атакующий не сможет перехватить первый запрос (после истечения max-age).
Правильный заголовок
Strict-Transport-Security: max-age=31536000; includeSubDomains
| Параметр | Значение | |----------|---------| | `max-age=31536000` | Кэшировать 1 год (рекомендуется) | | `includeSubDomains` | Применять ко всем поддоменам | | `preload` | Запрос на включение в браузерный preload list |
Конфигурация Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Конфигурация Apache
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
HSTS Preload
Домен с HSTS Preload включается в браузер на уровне сборки — защищает даже при первом посещении. Требования: max-age ≥ 1 год, includeSubDomains, preload. Подача: hstspreload.org
**Важно:** Преload — необратимо. Удаление из списка занимает месяцы.
Порядок включения
1. Настройте HTTPS на всех поддоменах 2. Добавьте заголовок с малым `max-age=300` 3. Убедитесь, что всё работает 4. Увеличьте до `max-age=31536000`