Что делает HSTS
- Strict-Transport-Security сообщает браузеру, что после первого успешного HTTPS-посещения к сайту нужно обращаться только по HTTPS.
- Это снижает риск случайного перехода на HTTP и части downgrade-сценариев.
- HSTS не заменяет корректный сертификат, TLS 1.2/1.3 и безопасные cipher suites: это дополнительный слой защиты.
Безопасный порядок включения
- Сначала убедитесь, что основной домен и все важные страницы без ошибок работают по HTTPS.
- Начните с короткого тестового срока: add_header Strict-Transport-Security "max-age=300" always;
- Проверьте сайт из нового браузерного сеанса, интеграции и все нужные редиректы.
- После успешной проверки увеличьте срок до года: max-age=31536000.
- Только затем оценивайте необходимость includeSubDomains и preload.
Когда не стоит добавлять includeSubDomains
- Если хотя бы один используемый поддомен пока доступен только по HTTP.
- Если есть старые внутренние сервисы, тестовые поддомены или внешние подрядчики, которыми вы не управляете.
- Если не проверены API, почтовые панели и другие сервисы на поддоменах.
Минимальный пример Nginx
- Для теста: add_header Strict-Transport-Security max-age=300 always;.
- Для production после проверки: add_header Strict-Transport-Security "max-age=31536000" always;
- Для полностью готовых поддоменов: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
- После изменения выполните nginx -t, затем reload и повторную HTTPS-проверку.
Проверьте HSTS после настройки
TLS Audit покажет, есть ли Strict-Transport-Security, какой max-age установлен и как это влияет на HTTPS-конфигурацию.
Проверить HSTS