Skip to content
EN

HSTS: определение, синтаксис и примеры

Коротко:

HSTS (HTTP Strict Transport Security) — заголовок, который заставляет браузер всегда использовать HTTPS для данного домена, даже если пользователь вводит http:// или кликает по старой http-ссылке. Настраивается одной строкой: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload. Защищает от downgrade-атак.

Проверить безопасность сайта →

Что такое HSTS

HSTS (HTTP Strict Transport Security) — заголовок, который заставляет браузер всегда использовать HTTPS для данного домена, даже если пользователь вводит http:// или кликает по старой http-ссылке. Настраивается одной строкой: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload. Защищает от downgrade-атак.

Проверить HSTS онлайн

Используйте инструмент Enterno.io — введите домен, получите результат за 1-2 секунды. Бесплатно, без регистрации.

Проверить →

Что такое HSTS?

HSTS (HTTP Strict Transport Security) — это веб-протокол, который обеспечивает защиту пользователей от атак типа «человек посередине» (MITM), принуждая браузеры использовать только защищенные HTTPS-соединения с сервером. Это повышение безопасности особенно важно для сайтов, обрабатывающих конфиденциальные данные.

Как настроить HSTS?

Чтобы настроить HSTS, необходимо добавить специальный заголовок в конфигурацию вашего веб-сервера. Для Apache это можно сделать, добавив следующую строку в файл .htaccess:

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

В этом примере параметр max-age установлен на 31536000 секунд (1 год), includeSubDomains указывает на то, что HSTS должен применяться ко всем поддоменам, а preload позволяет включить ваш домен в список предзагрузки HSTS.

Параметры HSTS: что они означают?

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

  • max-age — время (в секундах), в течение которого браузеры должны помнить о настройках HSTS. Это значение может варьироваться от 0 до 63072000 (примерно 2 года).
  • includeSubDomains — настройка, которая применяет HSTS ко всем поддоменам вашего сайта, что увеличивает общий уровень безопасности.
  • preload — если ваш домен добавлен в список предзагрузки HSTS, большинство современных браузеров будут автоматически использовать HTTPS, даже если пользователь введет адрес сайта без «https://».

Правильная настройка этих параметров позволит вам существенно повысить уровень безопасности вашего сайта.

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

Для серверов Nginx настройка HSTS выполняется в конфигурационном файле сайта. Вот пример конфигурации:

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/cert.key;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
}

С помощью данной конфигурации сервер будет отправлять заголовок HSTS, который применяет все вышеупомянутые параметры. После добавления заголовка рекомендуется протестировать правильность его работы с помощью инструментов, таких как HSTS Preload и Google's Security Tools.

Что такое HSTS?

HSTS (HTTP Strict Transport Security) — это веб-протокол, который заставляет браузеры использовать только защищённое соединение (HTTPS) для доступа к сайту. Это помогает предотвратить атаки «человек посередине» и гарантирует, что все данные передаются в зашифрованном виде.

При активации HSTS сервер отправляет специальный заголовок в ответе на запросы, который указывает браузеру, что все последующие запросы к этому домену должны выполняться только через HTTPS. Это особенно важно для сайтов, обрабатывающих конфиденциальную информацию, такую как личные данные или финансовые транзакции.

Стандарт HSTS был установлен в RFC 6797 и поддерживается большинством современных браузеров. Включение HSTS помогает улучшить безопасность вашего сайта и повысить доверие пользователей.

Преимущества использования HSTS

Использование HSTS приносит ряд значительных преимуществ:

  • Защита от атак «человек посередине»: HSTS предотвращает перехват трафика, гарантируя, что все соединения будут защищены.
  • Улучшение SEO: Поисковые системы, такие как Google, отдают предпочтение безопасным сайтам, что может положительно сказаться на ваших позициях в результатах поиска.
  • Упрощение управления безопасностью: С HSTS администраторы могут быть уверены, что все запросы будут происходить по HTTPS.

Однако, несмотря на все преимущества, важно правильно настроить HSTS, чтобы избежать проблем, таких как блокировка доступа к сайту в случае неправильной конфигурации.

Как проверить, включен ли HSTS на вашем сайте?

Для проверки настройки HSTS на вашем сайте вы можете использовать несколько методов. Один из самых простых способов — это выполнить запрос к вашему сайту и проанализировать ответ сервера. Вы можете использовать команду curl в терминале:

curl -I https://example.com

В ответе вы должны увидеть заголовок Strict-Transport-Security, который может выглядеть следующим образом:

Strict-Transport-Security: max-age=31536000; includeSubDomains

Здесь max-age указывает время в секундах, в течение которого браузер будет запоминать требование использовать HTTPS. В данном примере это 1 год (31536000 секунд).

Проблемы при использовании HSTS

Несмотря на свои преимущества, HSTS может вызвать некоторые проблемы, если не настроен должным образом. Вот несколько распространённых проблем:

  • Блокировка доступа: Если вы случайно включите HSTS для домена, который не поддерживает HTTPS, пользователи не смогут получить доступ к вашему сайту.
  • Сложности с тестированием: При разработке сайта может возникнуть необходимость отключить HSTS. Однако это может быть сложно, если вы не знаете, как правильно это сделать.

Чтобы избежать таких проблем, рекомендуется тщательно тестировать настройки HSTS на тестовых серверах перед их применением на рабочем сайте.

Практическое руководство по настройке HSTS на Apache

Для того чтобы включить HSTS на сервере Apache, вам нужно будет внести изменения в конфигурационный файл вашего сайта. Откройте apache2.conf или httpd.conf и добавьте следующий код в секцию виртуального хоста:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

После внесения изменений перезапустите сервер Apache, чтобы новые настройки вступили в силу:

sudo systemctl restart apache2

После этого ваш сервер будет отправлять заголовок HSTS, и браузеры будут запоминать это правило в течение одного года.

Настройка HSTS на Nginx: пошаговая инструкция

Для настройки HSTS на сервере Nginx вам нужно отредактировать конфигурационный файл вашего сайта, который обычно находится в /etc/nginx/sites-available/. Откройте файл конфигурации и добавьте следующий код в блок server:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; 

Не забудьте перезапустить Nginx, чтобы изменения вступили в силу:

sudo systemctl restart nginx

Теперь ваш сервер будет отправлять заголовок HSTS, что обеспечит безопасность ваших пользователей.

Заключение: стоит ли использовать HSTS?

Использование HSTS является важным шагом в обеспечении безопасности веб-сайта. Этот стандарт не только защищает данные пользователей, но и может положительно сказаться на SEO. Однако перед его активацией стоит внимательно изучить все аспекты настройки, чтобы избежать возможных проблем. Внедрение HSTS может быть простым процессом, если следовать рекомендациям и тестировать настройки на тестовых серверах. В конечном итоге, HSTS — это необходимый инструмент для обеспечения безопасности вашего веб-приложения в 2026 году и далее.

ЗаголовкиCSP, HSTS, X-Frame-Options и др.
SSL/TLSШифрование и сертификат
КонфигурацияСерверные настройки и утечки
Оценка A-FОбщий балл безопасности

Почему нам доверяют

OWASP
рекомендации
15+
заголовков безопасности
<2с
результат
A–F
оценка безопасности

Как это работает

1

Введите URL сайта

2

Анализ заголовков безопасности

3

Получите оценку A–F

Что проверяет анализ безопасности?

Инструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.

Анализ заголовков

Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.

Проверка SSL

Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.

Обнаружение утечек

Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.

Отчёт с рекомендациями

Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.

Кому это нужно

Специалисты по безопасности

аудит HTTP-заголовков

DevOps

проверка конфигурации

Разработчики

CSP и HSTS настройка

Аудиторы

соответствие стандартам

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

Нет Content-Security-PolicyCSP — главная защита от XSS. Без него инъекция скриптов значительно проще.
Нет заголовка HSTSБез HSTS возможна downgrade-атака с HTTPS на HTTP. Включите Strict-Transport-Security.
Server header раскрывает версиюServer: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.
X-Frame-Options не установленСайт можно встроить в iframe для clickjacking-атаки. Установите DENY или SAMEORIGIN.
Нет X-Content-Type-OptionsБез nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).

Лучшие практики

Начните с базовых заголовковМинимум: HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy. Займёт 5 минут.
Внедрите CSP постепенноНачните с Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.
Скройте серверные заголовкиУдалите Server, X-Powered-By, X-AspNet-Version из ответов.
Настройте Permissions-PolicyОграничьте доступ к камере, микрофону, геолокации — только то, что реально используется.
Проверяйте после каждого деплояЗаголовки безопасности могут быть перезаписаны при обновлении конфигурации сервера.

Получите больше с бесплатным аккаунтом

История security-проверок и мониторинг HTTP-заголовков безопасности.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

Чем HSTS отличается от других DNS/HTTP концепций?

Смотрите полный разбор в основной статье выше. Для быстрой проверки — используйте наш онлайн-чекер.

Нужно ли ручное обновление?

Обычно нет — большинство современных сервисов настраивают автоматически. Ручная настройка нужна только при миграции или когда используется экзотическая конфигурация.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.