Про HSTS на Хабре уже
писали, этот механизм включен в
генераторе конфигов для веб-серверов от Mozilla. Написать этот пост я решил за один день столкнувшись с недоступность сразу двух крупных сайтов из-за HSTS.
TL;DR
Тщательно проверяйте работу сайта по TLS перед включением HSTS, особенно если это большой портал с кучей субдоменов и управляемый разными людьми.
Что такое HSTS?
HSTS (HTTP Strict Transport Security) — это механизм защиты от даунгрейд-атак на TLS, указывающий браузеру всегда использовать TLS для сайтов с соответствующими политиками. Стандарт описан в
RFC6797, а политики бывают двух видов:
Динамические
Политика применяется из HTTP-заголовка Strict-Transport-Security при первом заходе на сайт по HTTPS, в нём указан срок действия и применимость к субдоменам:
Strict-Transport-Security: max-age=15768000; includeSubDomains;
Статические
Статические политики захардкожены в браузер и для некоторых сайтов включает привязку к вышестоящему CA, выпустевшему сертификат (например: google.com, paypal.com или torproject.org). Причем она может действовать
только когда сайт открыт через TLS, разрешая незащищённое соединение, но блокируя MitM с подменой сертификата.
Список из Chromium используют все популярные браузеры (Firefox, Safari и IE 11+Edge) и добавить в него сайт может
любой желающий, если веб-сервер отдаёт заголовок Strict-Transport-Security со сроком действия от двух лет и ключевым словом
preload в конце:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload