2.12.10. Налаштування HSTS

HSTS (HTTP Strict Transport Security) — механізм примусового переходу з протоколу HTTP на HTTPS. Технологія з'явилася в 2012 році і на сьогоднішній день підтримується всіма браузерами. Дана політика вказує браузеру примусово змінювати все адреси домену з протоколу HTTP на HTTPS за допомогою заголовка Strict-Transport-Security, Описано в стандарті RFC 6797. Важливо враховувати, що політика HSTS поміщається в кеш на вказаний термін і в цей час повернутися на протокол HTTP не вийде, крім ручної очистки політик безпеки браузера.

Важливі моменти:

  • Політика HSTS застосовується тільки після першого входу на сайт. При першому відвідуванні браузер ще не знає про заголовку і запит може виконуватися по HTTP.
  • Не всі браузери підтримують дану технологію. Якщо підтримки немає, то вона буде проігнорована. Підтримка реалізована у всіх браузерах на базі Chromium (Chrome, Opera, Yandex та інші) і в Firefox.
  • Політика HSTS зберігається для певних доменів на період, зазначений у переданому заголовку. До моменту закінчення цього періоду неможливо перейти на протокол HTTP без ручного очищення кеша.
  • Не слід відразу ж вказувати великий період в max-age. Встановіть параметр в 900 для перевірки працездатності сайту і якщо все буде в порядку, можна буде змінити його на більш високий.
  • Додавання заголовка HSTS в .htaccess можливо тільки в рамках веб сервера Apache, в рамках LiteSpeed або PHP-FPM правило в .htaccess буде ігноруватися.
  • Для отримання рейтингу «A+» в тесті SSL Labs період кешування повинен бути не менше 180 днів (15552000 секунд).
  1. Навпаки параметра «Тема Strict-Transport-Security (HSTS)» вкажіть період кешування політики в браузерах і збережіть зміни.
  2. Перевірте роботу заголовка на hstspreload.org. Там же можна додати мене до свого списку предзагрузок HSTS браузерів.
  1. Додайте в файл .htaccess в каталозі сайту такий рядок:
    Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
    • max-age — період кешування політики в браузерах в секундах.
    • includeSubDomains — застосувати політику до всіх піддоменів.
    • preload — включення політики для домену в підтримуваних браузерах. Забезпечує зміна протоколу HTTP на HTTPS до завантаження сайту.
  2. Перевірте роботу заголовка на hstspreload.org. Там же можна додати мене до свого списку предзагрузок HSTS браузерів.
Зміст