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

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

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

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

    (2)