Як перевести ваш сайт на HTTPS
Сам перехід займає півдня. Трафік сайти втрачають через порядок кроків — редирект, увімкнений до того, як прибрано змішаний вміст, або сертифікат, який ніхто не продовжує. Ось послідовність, що дозволяє уникнути і того, й іншого.
Чому перехід уже не є необов’язковим
HTTPS перестав бути перевагою і став базовою вимогою. Ось чотири речі, які змінюються, коли сайт віддається через нього.
-
Ніхто не читає трафік
Логіни, дані форм, куки та самі сторінки зашифровані між відвідувачем і вашим сервером, тож спільна мережа Wi-Fi чи вузол на маршруті не можуть їх прочитати або підмінити.
-
І ніхто його не переписує
Звичайний HTTP можна змінити дорогою — зазвичай це вставлена реклама та підмінені посилання на завантаження. Сертифікат робить таке втручання помітним.
-
Пошукові системи цього очікують
Google враховує HTTPS як сигнал ранжування з 2014 року. Сам по собі він невеликий, але тепер стоїть поруч із метриками зручності сторінки, для яких HTTPS є передумовою.
-
Сучасний веб цього вимагає
HTTP/2, HTTP/3, service workers, геолокація, API камери та мікрофона й більшість платіжних інтеграцій не працюють на незахищеному джерелі.
Перехід крок за кроком
Виконуйте їх по порядку. Кроки з 1 до 4 можна зробити на тестовій копії; крок 6 — той, що робить зміну публічною.
-
Складіть перелік усіх імен, які ви обслуговуєте
Випишіть кожне ім’я хоста, на яке відповідає сайт, — голий домен, www і будь-які піддомени на кшталт shop, blog чи api. Сертифікат має покривати їх усі, а ім’я, знайдене вже після переходу, означає перевипуск. Занотуйте також сторонні скрипти, шрифти та зображення, які ви вбудовуєте: саме про них крок 4.
-
Оберіть сертифікат, який їх покриває
Для одного імені потрібен однодоменний сертифікат, для набору піддоменів — wildcard, для не пов’язаних між собою доменів — мультидоменний. Рівень перевірки — окреме рішення: DV підтверджує контроль над доменом і випускається за хвилини, OV та EV додатково перевіряють компанію за ним.
-
Згенеруйте CSR, встановіть сертифікат, перевірте ланцюжок
Створіть ключ і запит на підпис сертифіката (CSR) на тому сервері, де вони зберігатимуться, і залиште приватний ключ там. Після встановлення перевірте ланцюжок, а не покладайтеся на браузер, яким ви користуєтесь: відсутній проміжний сертифікат невидимий у десктопному Chrome і фатальний на старому Android.
-
Приберіть змішаний вміст
Сторінка, віддана через HTTPS, яка тягне ресурс через HTTP, — це змішаний вміст, і браузери не просто попереджають: скрипти, стилі та фрейми вони блокують повністю, а зображення, аудіо та відео мовчки перезапитують через HTTPS і не завантажують узагалі, якщо сервер не віддає їх там. Виправте посилання в шаблонах, у базі даних і у вашому CSS. Якщо щось усе одно не завантажується, прочитайте невдалий запит на вкладці «Мережа»: названий там сервер підкаже, чи ви пропустили http://-адресу, чи цей сервер зовсім не має HTTPS, чи захист від хотлінкінгу ще потребує https://-форми вашого домену у списку дозволених.
-
Оновіть внутрішні посилання та canonical-теги
Внутрішні посилання, canonical-теги, теги hreflang, URL для Open Graph і структуровані дані мають вказувати на версію з https://. Покладатися на редирект для внутрішніх посилань можна, але це витрачає зайвий обмін із сервером на кожному кліку й залишає старий URL тим, який ви публікуєте.
-
Перенаправте HTTP на HTTPS через 301, потім додайте HSTS
Постійний редирект 301 з кожної HTTP-адреси на її HTTPS-двійник передає накопичені сигнали ранжування і робить нову адресу канонічною. Коли сайт певний час пропрацює на HTTPS без проблем, додайте заголовок Strict-Transport-Security, щоб браузери взагалі перестали пробувати HTTP, — починайте з невеликого значення max-age, бо цей заголовок важко відкликати.
-
Повідомте пошукові системи
Додайте HTTPS-сайт як окремий ресурс у Google Search Console та Bing Webmaster Tools, надішліть sitemap, усі URL якого починаються з https://, і переконайтеся, що robots.txt не блокує нові сторінки. Не видаляйте HTTP-ресурс: саме там ви бачите, як старі URL виходять з індексу. Якщо ви ведете список disavow, завантажте його і до ресурсу HTTPS — Search Console зберігає по одному списку на ресурс із префіксом URL і нічого не переносить (до ресурсів-доменів інструмент не застосовується).
-
Стежте за першими тижнями, а далі вчасно продовжуйте сертифікат
Очікуйте, що індексація змінюватиметься поступово, а не за одну ніч; коротке просідання, поки відомі обидві версії, — це нормально. Потім запишіть дату закінчення в календар. Прострочений сертифікат — це попередження браузера на весь екран і найчастіша причина, через яку сайт, що успішно перейшов на HTTPS, падає через рік.
Перш ніж вважати роботу завершеною
Шість перевірок, які ловлять те, що кроки вище зазвичай пропускають.
- Ланцюжок сертифіката повний, а сертифікат відповідає приватному ключу на кожному сервері за балансувальником навантаження.
- Кожне ім’я хоста відкривається через HTTPS, включно з формами www і без www.
- Жодна сторінка не завантажує ресурс через http:// — перевірте сторінки статей і оформлення замовлення, а не лише головну.
- Кожна HTTP-адреса відповідає кодом 301, а не 302, і веде на відповідну HTTPS-сторінку, а не на головну.
- У sitemap, robots.txt, canonical-тегах і структурованих даних скрізь адреси з https://.
- Дата закінчення стоїть у календарі людини, яка досі працює в компанії, або продовження автоматизоване.
Питання, які виникають під час переходу
Браузер каже, що з’єднання не повністю захищене. Чому?
Майже завжди це змішаний вміст: сама сторінка віддається через HTTPS, але щось на ній — зображення, шрифт, скрипт аналітики — запитується через HTTP. Не судіть про це за піктограмою біля адреси: у версії 117 Chrome замінив замок на піктограму налаштувань для всіх сайтів, а браузери, що замок зберегли, малюють його кожен по-своєму. Консоль розробника назве ресурс, який заблоковано або не вдалося перевести на HTTPS, а наша перевірка SSL покаже сертифікатний бік справи.
Чи втратимо ми пошуковий трафік через перехід?
Коротке просідання, поки відомі обидві версії, нормальне і минає. Тривале падіння означає, що щось у кроках 5, 6 або 7 не доведено до кінця: зазвичай це редиректи 302 замість 301, canonical-теги, які досі вказують на http://, або sitemap, який так і не надіслали повторно.
Навіщо платити за сертифікат, якщо є безкоштовні?
Шифрування однакове. Платять за рівень перевірки — безкоштовний сертифікат підтверджує контроль над доменом і нічого не каже про компанію — а також за гарантію, знак на сайт, підтримку, коли встановлення не вдається, і сертифікати, що діють довше за 90 днів.
Як не допустити прострочення сертифіката?
Автоматизуйте продовження, якщо ваша платформа підтримує ACME, і залиште нагадування в календарі як запасний варіант. Ми теж попереджаємо про наближення закінчення, але сповіщення працює лише тоді, коли доходить до людини, яка досі читає ту скриньку.
Готові до переходу?
Оберіть сертифікат, що відповідає іменам, які ви виписали на кроці 1, або запитайте нас, і ми підберемо їх за вас.