Перейти к содержимому
Skip to content
← Все статьи

HSTS и список предзагрузки: полное руководство по внедрению

HTTP Strict Transport Security (HSTS) и предзагрузка

HTTP Strict Transport Security — это механизм безопасности, который заставляет браузеры взаимодействовать с вашим сайтом исключительно по SSL/TLS проверку. После получения заголовка HSTS браузер откажется подключаться по обычному HTTP на указанный срок, устраняя целый класс атак. Список предзагрузки HSTS идет дальше, встраивая ваш домен в код браузеров, обеспечивая принудительный HTTPS с самого первого посещения.

Почему HSTS важен

Даже если ваш сервер перенаправляет HTTP на HTTPS, начальный запрос все равно уязвим. Без HSTS злоумышленники могут использовать это окно через несколько векторов атак:

HSTS закрывает эти бреши, сообщая браузеру: «Никогда не подключайся к этому домену по HTTP. Всегда используй HTTPS. Если сертификат недействителен, не позволяй пользователю обойти предупреждение.»

Заголовок HSTS

HSTS реализуется как заголовок ответа на HTTPS-соединениях:

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

Директивы заголовка

ДирективаОбязательнаОписание
max-ageДаВремя в секундах, в течение которого браузер должен помнить политику HSTS. 63072000 = 2 года.
includeSubDomainsДля preloadПрименяет политику ко всем поддоменам текущего домена.
preloadДля preloadСигнализирует о готовности к включению в списки предзагрузки браузеров.

Этапы внедрения

Внедрение HSTS требует осторожного, поэтапного подхода. Поспешный переход к длительному max-age или включение includeSubDomains без подготовки может заблокировать доступ к вашим собственным сервисам.

Фаза 1: Аудит и подготовка

Перед включением HSTS убедитесь, что вся ваша инфраструктура поддерживает HTTPS:

  1. Проверьте все поддомены: Каждый поддомен (www, API документацию, cdn, mail, staging, внутренние инструменты) должен иметь действительный HTTPS-сертификат, если будет использоваться includeSubDomains.
  2. Проверьте смешанный контент: Убедитесь, что ни одна страница не загружает ресурсы по HTTP.
  3. Проверьте автоматизацию сертификатов: Подтвердите, что обновление сертификатов автоматизировано и контролируется. Истекший сертификат при включенном HSTS означает полную недоступность сайта.
  4. Проверьте сторонние интеграции: Убедитесь, что платежные системы, аналитика и другие интеграции корректно работают через HTTPS.

Фаза 2: Начните с короткого max-age

Начните с max-age в 5 минут для безопасного тестирования:

# nginx
add_header Strict-Transport-Security "max-age=300" always;

# Apache
Header always set Strict-Transport-Security "max-age=300"

Мониторьте проблемы минимум одну неделю. Проверяйте логи ошибок, обращения пользователей и аналитику на предмет аномалий.

Фаза 3: Постепенное увеличение max-age

Прогрессивно увеличивайте длительность:

# Неделя 2: 1 час
add_header Strict-Transport-Security "max-age=3600" always;

# Неделя 3: 1 день
add_header Strict-Transport-Security "max-age=86400" always;

# Неделя 4: 1 неделя
add_header Strict-Transport-Security "max-age=604800" always;

# Неделя 6: 1 месяц
add_header Strict-Transport-Security "max-age=2592000" always;

Фаза 4: Добавление includeSubDomains

Только после подтверждения корректной работы всех поддоменов через HTTPS:

add_header Strict-Transport-Security "max-age=2592000; includeSubDomains" always;

Фаза 5: Финальный max-age и preload

Установите max-age на 2 года (минимум для preload) и добавьте директиву preload:

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

Список предзагрузки HSTS

Список предзагрузки HSTS поддерживается проектом Chromium и используется всеми основными браузерами (Chrome, Firefox, Safari, Edge, Opera). Домены в этом списке имеют принудительный HSTS до того, как браузер когда-либо отправит запрос к домену — устраняя даже уязвимость первого посещения.

Требования для подачи

Для включения в список предзагрузки ваш домен должен соответствовать всем следующим критериям:

  1. Иметь действительный HTTPS-сертификат на корневом домене.
  2. Перенаправлять весь HTTP-трафик на HTTPS на том же хосте (если слушает проверку портов 80).
  3. Отдавать заголовок HSTS на корневом домене через HTTPS с: max-age не менее 63072000 (2 года), директивой includeSubDomains и директивой preload.
  4. Все поддомены должны поддерживать HTTPS, включая www-поддомен, если для него существует DNS Lookup.

Подайте заявку на hstspreload.org после выполнения всех требований.

Важные предупреждения о preload

Риски и их снижение

РискПоследствиеСнижение
Истечение сертификатаПолная недоступность сайтаАвтоматизация обновления, мониторинг сайтов срока, оповещения за 30/14/7 дней
Поддомен без HTTPSПоддомен недоступенАудит всех поддоменов перед включением includeSubDomains
Смешанный контентСломанные ресурсы страницыСканирование всех страниц на HTTP-ресурсы перед включением HSTS
Неправильная конфигурацияПользователи заблокированы на нерабочем HTTPSНачать с короткого max-age, увеличивать постепенно
Сожаление о preloadНевозможность простого возврата к HTTPПодавать preload только после месяцев успешной работы HSTS

Тестирование конфигурации HSTS

Проверьте правильность настройки заголовка HSTS:

# Проверка заголовка HSTS
curl -sI https://example.com | grep -i strict

# Тестирование через SSL Labs
# Перейдите: https://www.ssllabs.com/ssltest/

# Проверка готовности к preload
# Перейдите: https://hstspreload.org/

# Проверка в Chrome
# Откройте: chrome://net-internals/#hsts
# Запросите ваш домен для просмотра текущего состояния HSTS

Частые ошибки

Итоги

HSTS — один из важнейших заголовков безопасности, который вы можете внедрить. Он устраняет атаки SSL stripping, предотвращает перехват cookies и обеспечивает принудительный HTTPS на уровне браузера. Список предзагрузки расширяет эту защиту на первое посещение, но требует тщательной подготовки и несет значительные обязательства. Следуйте поэтапному подходу: сначала аудит, затем короткий max-age, включение includeSubDomains только после проверки поддоменов, и подача в список предзагрузки только после месяцев успешной работы HSTS. Преимущества безопасности существенны, но только при правильном внедрении.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: Безопасность
Безопасность
WAF: что это и как защищает сайт
14.03.2026 · 12 просм.
Безопасность
Безопасность API: лучшие практики защиты
11.03.2026 · 14 просм.
Безопасность
Руководство по двухфакторной аутентификации: TOTP, SMS и аппаратные ключи
16.03.2026 · 12 просм.
Безопасность
Стратегии ограничения частоты запросов для веб-API
16.03.2026 · 11 просм.