Як налаштувати HSTS

Как настроить HSTS Хостинг

Безпека – одна з найвищих цінностей сучасного існування та сайти тут не виняток. HSTS – герой сьогоднішнього огляду. Ви дізнаєтесь, як домогтися, щоб браузери відкривали сторінки лише за HTTPS-захищеним протоколом, навіть якщо користувач навмисно введе адресу з http://.

Протокол HTTPS вже став стандартною вимогою для будь-якого проекту. За цим ретельно стежать пошукові системи, а Яндекс навіть нагороджує сайт спеціальним знаком.

Захищене з'єднання

Багато вебмайстрів налаштовують 301 редирект з http:// на https:// і на цьому заспокоюються. Однак аудит сайту в Serpstat видає серйозну помилку: не підтримується протокол HTTP Strict Transport Security (HSTS).

Аудит сайту на HTTPS

Як бачите, цього замало. Давайте розберемося в чому проблема, як її виправити а також плюси і мінуси такого підходу.

Що таке HSTS

Навіть якщо випущено SSL-сертифікат і налаштовано перенаправлення на https://, все одно в ряді випадків може статися небезпечне з’єднання.

  1. Користувач ввів до рядка адреси домен замість повного URL (sitefromzero.info замість https://sitefromzero.info/). У цьому випадку браузери за промовчанням використовують http://.
  2. Безпосередній перехід за посиланням або адресою сторінки з http://, що може бути випадковим або навмисним для перехоплення даних.
  3. Мережа користувача може вороже ставитися до https:// та автоматично змінювати їх на http://.

Щоб підвищити ступінь безпеки у 2012 році було розроблено спеціальний механізм роботи сайту, який повідомляє браузеру, що він відкривається лише за захищеним протоколом.

HTTP Strict Transport Security – алгоритм примусової взаємодії з сайтом лише за допомогою HTTPS-з’єднання.

Це означає, що якщо ваш ресурс використовує політику безпеки HSTS, то браузер повинен автоматично замінювати всі http-посилання на https://.

Іншими словами, HSTS – це аналог 301-го редиректу, але на рівні браузера, а не сторінок. Навіщо ж тоді було мучитися, спитайте ви… Справа в тому, що при 301-редиректі перше завантаження сайту зазвичай відбувається по незахищеному з’єднанню. А у випадку з HSTS продумано механізм захисту навіть для першого «побачення». Але про все по порядку.

HSTS слід використовувати лише переконавшись, що HTTPS працює коректно.

Також важливо зрозуміти, що HSTS це перенапрямок, але не справжній редирект. Його бачать тільки браузери, а Googlebot його не помітить. Це додатковий інструмент, який застосовується спільно зі справжніми редиректами.

У випадку, якщо сайт не може забезпечити зашифроване з’єднання (наприклад, закінчився термін дії SSL-сертифіката), доступ до нього буде закритий.

Підтримка браузерами

На сьогоднішній день Strict Transport Security підтримують усі сучасні браузери. За даними Caniuse 96.77% користувачів використовують браузери з підтримкою HSTS.

Підтримка браузерами HSTS

Налаштування

Використання HSTS здійснюється або активацією в особистому кабінеті хостинг-провайдера, або самостійним прописуванням заголовка HTTP Strict Transport Security, який додаватиметься до всіх відповідей вашого сервера.

У панелі керування хостингом

Спочатку з’ясуйте: чи є така функція на вашому хостингу. Наприклад, якщо ви користуєтеся панеллю ISPmanager, достатньо встановити галочку після того, як буде випущений SSL-сертифікат.

За допомогою файлу .htaccess

Відкрийте файл .htaccess за допомогою FileZilla та додайте код. Заголовок може містити різний набір змінних, для свого блогу я обрала найповніший варіант:

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
  • Strict-Transport-Security – заголовок примусового використання протоколу HTTPS;
  • параметр max-age показує браузеру час у секундах (31536000с приблизно відповідає року), коли сайт доступний лише за https:// з’єднання;
  • includeSubDomains вказує, що це правило поширюється також на всі піддомени;
  • preload – така директива вважається запитом на включення сайту до Preload list.

Про необхідність створення списку ми докладно поговоримо нижче, а зараз я лише зазначу, що видалення директиви preload розцінюється як запит видалення з нього.

Preload list

Розглянутий механізм все ж таки має недолік: HSTS-політика не здатна захистити перше з’єднання з сайтом і витік даних все ще залишається актуальним. Адже клієнт може перевстановити систему, зайти з іншого браузера або пристрою, а також просто очистити кеш.

Виходить, що всі ці ситуації не можуть гарантувати 100% безпечне з’єднання. Особливо це важливо на ресурсах, які здійснюють транзакції.

Тому Google Chrome у 2010 році став додатково складати список сайтів, які при першому відвідуванні користувачем у браузері Chrome відкриваються виключно за протоколом HTTPS.

Пізніше на основі цього HSTS preload list стали формувати списки Microsoft, Safari, Mozilla Firefox.

Щоб потрапити до списку, скористайтесь сервісом HSTS Preload. Спершу він перевіряє сайт на відповідність вимог.

Перевірка HSTS

Якщо результат негативний, побачите червоний або жовтий екран та помилки, які потрібно виправити.

Не підтримується протокол HTTP Strict Transport Security

При позитивному результаті вийде повідомлення про те, що протестований сайт може бути доданий в preload list.

Website eligible for the HSTS preload list - sitefromzero.info

Якщо ви впевнені, що HTTPS-протокол працює коректно, надішліть заявку. Якщо є сумніви, то для початку проведіть тестування, вказавши невеликий часовий проміжок.

Вимоги до додавання сайту до Preload list:

  • наявність SSL-сертифіката;
  • перенаправлення всіх сторінок з http:// на https://;
  • всі субдомени (включаючи www, якщо для нього є DNS-запис) працюють за протоколом HTTPS;
  • директива max-age більше року;
  • вказівка директиви includeSubDomains;
  • наявність директиви preload.

Я вирішила відправити заявку, проставила галочки і попросила додати sitefromzero.info в HSTS список Google, звідки потім потраплять дані та в інші браузери.

Додавання до списку попереднього завантаження

Перевірка

Нові записи жорстко кодуються у вихідному коді Chrome, потрібно кілька місяців, перш ніж сайт буде стабільно відображатися у списку. Перевірити поточний статус можна за допомогою спеціальних сервісів.

hstspreload.org

HSTS Preload рекомендує зайти за кілька днів і перевірити статус сайту. У випадку, якщо він не відповідає вимогам безпечного з’єднання, буде виключен зі списку.

Статус HSTS - sitefromzero.info

ssllabs.com

Перевірити чи потрапив проект у Preload List можна і за допомогою сервісу ssllabs.com.

Сервіс ssllabs.com
SSL Report - sitefromzero.info

Як видно зі скріншоту, мій блог вже потрапив до списків трьох браузерів (Edge, Firefox, Internet Explorer), але ще не включений до Chrome.

Оцінка «A+» означає, що сайт працює за HSTS.

net-internals

Перевірити чи працює HSTS можна перейшовши за посиланням chrome://net-internals/#hsts і вказавши свій домен. Якщо алгоритм працює, побачите такий результат.

Сервіс HSTS Query

Вплив на SEO

Як я вже писала вище, механізм HSTS розроблено та впроваджено з метою додаткового захисту сайтів. Але це не єдина перевага.

Швидкість завантаження

Оскільки проект тепер працює виключно за протоколом HTTPS і не потрібно виконувати перенаправлення, ланцюжок запитів до сервера вкорочується, що зменшує навантаження і прискорює завантаження сторінки. Це позитивно впливає загалом на SEO і ранжування зокрема.

Mixed content

Сторінки відкриваються https://, але для їх оформлення ми користуємося javascript і iframe, що посилаються http://. Це можуть бути блоки підписки, відео з Youtube.

Тобто. до налаштування HSTS ми стикалися із проблемою змішаного контенту, яка автоматично вирішується заміною всіх посилань на захищені https://.

Недоліки

Тепер ще раз проговорю негативний бік питання. Найбільший мінус полягає в тому, що процедура вилучення зі списку досить тривала, може тривати кілька місяців. А це означає, що у разі збою сайт буде недоступним.

Кожен субдомен також повинен мати свій сертифікат та працювати за HTTPS.

Саме тому рекомендується проходити процедуру поетапно, виставляючи час спочатку на 5 хвилин, потім тиждень, місяць та перевіряти трафік. Тільки коли ви будете впевнені, що сайт та сертифікат працюють стабільно, відвідувачі не зникають, подавайте заявку на включення до Preload list.

NTP-атаки

На жаль, навіть на HSTS зловмисники можуть здійснювати атаки, впливаючи на мережевий протокол часу (NTP). Сенс полягає у зміні терміну дії: якщо вдалося обдурити браузер, що термін запису минув, то відкривається доступ до http://.

Таким атакам можуть піддаватися й інші технології безпеки, наприклад, SSL/TLS, Kerberos і Active Directory.

Вилучення

Якщо все ж таки виникла необхідність залишити список попереднього завантаження, то заповніть заявку на видалення, попередньо видаливши директиву preload. Як заявляє сам сервіс, процес виключення займає 6-12 тижнів.

Повністю відключити HSTS допоможе нокаутний запис:

Strict-Transport-Security: max-age=0

Вона є домінуючою над записом у списку попереднього завантаження і браузер поводитиметься, начебто сайту немає в Preload list.

Цікаво, що субдомени, як і раніше, працюватимуть за HSTS-механізмом..

Сьогодні ми розібралися з усіма важливими питаннями, пов’язаними з роботою HTTP Strict Transport Security. Якщо інформація була цікавою, ставте вподобайки. До нової зустрічі!

Поділитися з друзями
Светлана Стецко

Світлана Стецько -адміністратор, вебмайстер, копірайтер, блогер, дизайнер, SEO-фахівець цього сайту. Ділюсь своїми експериментами, спостереженнями та результатами.

Оцініть автора
( 3 оцінки, середнє 3.67 з 5 )
SiteFromZero
Додати коментар

[text_before_button_comments]