В первых числах октября принял решение о переезде сайта на протокол https. Если ранее Google просто рекомендовал использовать https, то теперь в обновленной версии Chrome появился зелёный замок сообщающий о том, что подключение к сайту защищено.
И значок «i» по клику на который появляется информация о том, что сайт не защищен.
Hoster.by начал предлагать SSL сертификаты. Обоснование применения такое:
SSL-сертификат — это стандарт шифрования, который устанавливает безопасное соединение между клиентом и сервером. Другими словами, это гарантия того, что данные между браузером и вашим сайтом будут передаваться по защищенному каналу. Как следствие, SSL-сертификат информирует посетителей сайта о том, что вашему ресурсу можно доверять.
Exler.ru, Devaka.ru, Blisch.by переехали на HTTPs. В целом переехал и я. Ниже о том, как сделать https для сайта, купить, установить SSL-сертификат, подготовить сайт к переезду, сделать переадресацию с http на https, проследить за правильностью переезда.
Как сделать https для сайта
В качестве эксперимента установил бесплатный SSL-сертификат на неосновной домен, в целом ничего сложного. SSS-сертификат со сроком действия 3 года обошелся в 14$.
Больше беспокоил, тот факт, что https версию сайта поисковики воспринимают как новый сайт и как следствие нужно сделать правильные редиректы, чтобы не потерять текущие позиции, посещаемость.
Составил план по переезду на https в MindMeister, в процессе план корректировался финальная версия.
Мой результат на 23.10.2016 — сайт работает на https, в индексе поисковиков страницы с https, позиции восстановились, слетел до 0 ТИЦ (возможно временно).
Подготовка сайта к переезду
Markevich.by работает на Wordpress, хостингом управляю через Cpanel. Вся приведённая ниже методика работает на Wordpress и CPanel.
Первым делом сделал в Cpanel резервную копию базы данных и копию всей корневой директории. На всякий случай.
Поле того как будет изменен протокол на https все ссылки внутри блога окажутся неправильными. Готовлюсь, меняю все ссылки на относительные (относительно протокола).
Были ссылки с http.
C помощью нескольких SQL-запросов к базе данных убрал протокол из всех ссылок на сайте.
Краткое описание перечисленных SQL запросов:
- Первый запрос обновляет параметры «Адрес WordPress» и «Адрес сайта» в Настройки > Общие (не нужен).
- Второй запрос затрагивает содержимое постов — URL картинок и внутренние ссылки.
- Третий запрос обновляет метаданные постов (произвольные поля). Там редко можно найти URL сайта, но подстраховаться не помешает.
- Четвертый и пятый запросы относятся к комментариям (содержимое комментария и сайт автора).
Итог выполнения SQL-запросов — затронуто более 10 000 строк.
Теперь все ссылки в статьях стали относительными.
Покупка SSL-сертификата
В Беларуси покупать сертификат дорого. Выбрал SSL-сертификат — Comodo PositiveSSL (сравнить с другими можно здесь). Купил в GogetSSL — 14$ на три года.
Оплатил. На русском языке только первая страница сайта, потом идет переадресация на английскую версию сайта.
На первом шаге необходим CSR.
Сгенерировать CSR можно в CPanel, перехожу в Безопасность/SSL/TLS.
Создаю закрытый ключ.
Для каждого установленного сертификата SSL должен быть сгенерирован новый файл ключа.
Новый закрытый ключ создан.
Дальше возвращаюсь к Gogetssl и CSR. В Cpanel это запрос на подпись сертификата (CSR). Создать, просмотреть или удалить запрос на подпись сертификата SSL.
В итоге будет создан запрос, который можно использовать в Gogetssl.
Зашифрованный запрос на подпись надо вставить в форму вместе с верхней и нижней строками:
- ——Begin certificate request——
- ——End certificate request——
После вставки жму — Validate CSR.
Следующий шаг — прохождение валидации домена, выбираю — email.
Проверяю почту, приходит подтверждение.
В письме код и ссылка на страницу в которой его надо ввести. Ввожу.
SSL сертификат теперь активирован.
Можно его скачать и начать установку на сайт. SSL сертификат также приходит на почту.
Установка SSL-сертификата
Теперь иду в Cpanel в Сертификаты (CRT) — Создать, просмотреть, отправить или удалить сертификаты SSL.
Выбираю свой сертификат и передаю.
Кроме сертификата для домена есть еще 3. Передаю их все. Дали — пускай будут.
Перед тем как отсюда уйти, жму изменить сертификат для markevich.by и копирую зашифрованный сертификат (вместе с begin).
Дальше перехожу снова в Cpanel и в этот раз выбираю — Установка и управление SSL для сайта (HTTPS). Управление сайтами с SSL.
Выбираю домен для которого буду устанавливать сертификат. Вставляю из буфера обмена сертификат. Ранее создавал закрытый ключ, его тоже вставляю в следующее окно.
Пакет центра сертификации: (CABUNDLE) не трогаю. Включить SNI для почтовых служб — оставляю включенным. Нажимаю установить сертификат.
Жму установить сертификат.
Около 15 секунд идет установка. Итоговое сообщение.
Сертификат установлен и теперь сайт доступен по https. Делаю редирект в http на https.
Переадресация с http на https
Здесь важно сделать так, чтобы каждая страница на http переадрсовывала на такую же страницу с https. Но при этом robots.txt был доступен как по http так и по https. Добавляю несколько строчек в htaccess.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Меняю в WordPress протокол на https.
Устранение ошибок
Есть ряд ошибок которые не дают появиться зеленому замку. Chrome помогает найти причину.
Исправляю ошибки.
SSL-сертификат установлен. Сайт доступен только https. Меняю относительные внутренние ссылки на ссылки с https.
Индексирование в Яндекс и Google сайта с https
Сообщаю поисковикам о том, что появился новый сайт. И слежу за индексацией. В старой http версии сайта количество проиндексированных страниц должно уменьшаться, в новой увеличиваться.
Жду пока Яндекс склеит сайты.
После чего отключаю игнорирование редиректа для robots.txt удаляя две строки в htaccess
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
В процессе позиции сайта в какой-то момент провалились, но не надолго.
Всё. Осталось дождаться пока восстановиться ТИЦ Яндекса и тогда переезд сайта на https можно считать удачно завершённым.