Как включить HSTS

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

HSTS (HTTP Strict Transport Security) — это механизм защиты от даунгрейд-атак на TLS, указывающий браузеру всегда использовать TLS для сайтов с соответствующими политиками.

Этот заголовок говорит о том что данный браузер работает только по HTTPS, и необходимо пресекать все попытки открытия его по HTTP, если проще — то всегда открывать его по HTTPS.

Стандарт описан в 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

d

Включить HSTS в nginx

открываем конфиг файл nginx и вносим в него следующую запись в секцию server:

server {
...
add_header Strict-Transport-Security "max-age=31536000;";
add_header X-Frame-Options "DENY";
....

После редактирования рестартуем Nginx:

sudo service nginx restart

Включить HSTS в apache

открываем конфиг файл apache и вносим в него следующую запись:

<VirtualHost *.443>
...
Header always set Strict-Transport-Security "max-age= 31536000; includeSubDomains"
Header always set X-Frame-Options DENY
....
</VirtualHost>

Также необходимо включить модуль header:

sudo a2enmod headers

После редактирования рестартуем Apache:

sudo service apache2 restart
Если есть вопросы, то пишем в комментариях и не забываем проголосовать за статью.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как включить HSTS
5 (100%) 7 votes

Добавить комментарий

Меню

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: