Приход на рынок Let’s Encrypt и повальный переход на https сопровождается большим количеством заявок по настройке сервера и сайта для работы в рамках защищённого соединения. Не самый очевидный момент в ходе такой настройки — это HSTS preloading, который клиенты время от времени просят подсветить зелёным (т. е. корректно настроить) на тестах ssllabs.
HSTS preload list — это листинг сайтов, которые по умолчанию в браузере будут открываться сразу только по HTTPS, даже если пользователь попытается обратиться к домену по http. Листинг используется большинством современных браузеров. Сервис проверки ssllabs.com проверяет этот параметр отдельно.
Для того что бы в этот листинг попасть, необходимо сделать следующее…
1. Установить на сервер валидный ssl сертификат. Подойдёт как бесплатный от Let’s Encrypt, так и любой платный. Кроме, пожалуй, startssl.com — многими браузерами сертификаты этой компании на сегодняшний день не считаются валидными.
2. Подготовить сайт на основном и www домене к корректной работе по https, подготовить к работе по https поддомены сайта, если таковые имеются. Убедиться (это важно!) что все поддомены и основной домен по https работают корректно.
3. Настроить на сайте редирект с http на https.
4. Прописать HSTS заголовок в конфиге веб-сервера.
— Для Nginx строку можно добавить в секцию server конкретного виртуального хоста, либо если на сервере работает только один домен в секцию http общего конфига:
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; ";
— для Apache в основном конфиге и виртуалхосте необходимо прописать следующее:
LoadModule headers_module modules/mod_headers.so <VirtualHost 123.123.123.12:443> Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;" </VirtualHost>
Проверить вступили ли изменения в силу можно, например, CURL’ом:
$ curl -s -D- https://sysadmin.pm | grep Strict Strict-Transport-Security: max-age=63072000; includeSubdomains;
5. Перейти на hstspreload.org и отправить URL в соответствующую форму.
Хотелось бы ещё раз обратить внимание читателя на то, что ещё до подачи заявки нужно убедиться в корректной доступности и работоспособности сайта по https. Включение в HSTS preload list сайта, который в настройке работы по https имеет ошибки, может привести к проблемам с доступом к ресурсу. Если вы только что установили ssl сертификат и только приступили к настройке, имеет смысл повременить с добавлением сайта в листинг.
Спустя некоторое время на этом же ресурсе можно будет проверить статус сайта. Положительный ответ выглядит так:
А нужный параметр на ssllabs так же будет подсвечен зелёным:
Очень грамотно расписанная инструкция, ничего лишнего. Спасибо!
главная проблема инструкций не в избыточности, а в недостатке.
Спасибо! Отправлю заказчику. Пусть читает, если у него возникнут вопросы 🙂