Что такое HSTS и как его включить
HSTS (Strict-Transport-Security) заставляет браузер подключаться к сайту только по HTTPS. Настройка для Nginx, Apache и Cloudflare и меры предосторожности.
Зачем нужен HSTS
Даже если сайт поддерживает HTTPS, пользователь может ввести адрес с http://. Первый запрос уйдёт без шифрования, и злоумышленник в сети может перехватить его и подменить страницу (атака SSL strip). Заголовок HSTS приказывает браузеру: «в течение заданного срока подключайся к этому сайту только по HTTPS».
Как выглядит заголовок
HTTP
Strict-Transport-Security: max-age=31536000; includeSubDomains- max-age — сколько секунд браузер помнит о HTTPS (31536000 = 1 год).
- includeSubDomains — правило действует и на все поддомены.
- preload — включение домена во встроенные списки браузеров (осторожно, откатить сложно).
Nginx, Apache и Cloudflare
nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;Apache
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"В Cloudflare: SSL/TLS → Edge Certificates → раздел HSTS.
Меры предосторожности
- Начните с малого значения (например, max-age=300), убедитесь, что всё работает, затем увеличьте.
- Включайте includeSubDomains, только если все поддомены работают по HTTPS.
- Заголовок отправляется только в HTTPS-ответах; редирект 301 с HTTP на HTTPS настраивается отдельно.