Как перевести сайт на https

17 Сен 2017 - Жукова Татьяна 2 комментария
Просмотров: 52507


Как вы уже знаете, мой сайт перешел на защищенный протокол https. Об этом я написала в статье Лучший хостинг — HandyHost.

Сегодня я пошагово расскажу о том, как я это сделала.

Зачем переводить сайт на https

HTTPS (от англ. HyperText Transfer Protocol Secure) — расширение http-протокола, поддерживающее шифрование данных и обеспечивающий их защиту от прослушивания и изменений.

HTTPS обеспечивает безопасность при обмене информацией между сайтом и устройством пользователя, повышает доверие пользователей к сайту и поддерживает его репутацию. Кроме того, Google уже несколько лет подталкивает сайты к переходу на защищенный режим, а с января 2017 года начал помечать все HTTP-сайты, которые передают личные данные пользователей, как сомнительные (небезопасные).

Пока что под это нововведение попадают страницы, где требуется ввод пароля или данных банковской карты, но со временем все сайты, использующие протокол http, будут помечаться как небезопасные. Так говорит Google, но на деле совсем недавно один из моих сайтов уже получил предупреждение о том, что сайт является небезопасным и помечен, как сомнительный, хотя данных банковских карт я не требую — сайт чисто информационный.

Поэтому, когда техподдержка моего хостинга сгенерировала мне бесплатный SSL-сертификат, то я решила его установить. Мало того, после этого я уже самостоятельно сгенерировала сертификат для другого сайта и снова удачно установила его. Поэтому у меня уже есть некоторый опыт по переводу сайта на https и я с удовольствием делюсь им с вами. Ведь рано или поздно, каждому, кто имеет свой сайт или блог, придется проделать эту работу. К этому будут подталкивать как поисковые системы, так и браузеры.

Как перевести сайт на https — пошаговая инструкция

1. Подготовка к переходу на https

В первую очередь необходимо заменить все внутренние абсолютные ссылки на сайте на относительные. Это можно сделать уже сейчас, даже, если вы не планируете в ближайшее время переходить на безопасный протокол.

Если сейчас все ссылки на вашем сайте начинаются с протокола http://workinet24.ru/…. то вы должны привести их к такому виду: //workinet24.ru/…. В этом случае ваш сайт будет работать по любому протоколу, даже если вы что-то неправильно сделаете при переводе сайта на https.

Важно! Необходимо исправить все ссылки, в том числе, на изображения, файлы, видео, внешние скрипты (виджеты, консультанты и прочие внешние сервисы).

Если оставить абсолютные ссылки, то пользователь каждый раз будет переходить на незащищенный протокол http://.

Как быстро заменить абсолютные ссылки на относительные

Самый быстрый способ — использовать плагины. В сети я нашла несколько вариантов:

  • Плагин Velvet Blues Update URLs. Сразу скажу, у меня он не сработал — некоторые ссылки так и остались с http:// Хотя этот плагин имеет преимущество перед другими в том, что после изменения ссылок его можно удалять.
  • Следующий вариант сработал на 100%, после него не возникло никаких ошибок и все страницы сайта отображались с зеленым значком и надписью «Надежный». Этот вариант подразумевает использование связки из двух плагинов. Сначала устанавливаем и активируем плагин HTTP / HTTPS Remover, он не имеет настроек и начинает работать сразу же. После этого устанавливаем плагин Easy HTTPS (SSL) Redirection. Настройки у него простые и все хорошо работает без единой ошибки. Данный способ меня не устроил тем, что количество работающих на моем сайте плагинов увеличилось сразу на 2. Кого это не пугает, то можете смело использовать этот способ — он самый простой. Я же начала искать другие способы.
  • Еще один способ изменить ссылки — через phpmyadmin. Вводим в поле запрос:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://workinet24.ru', '//workinet24.ru');

Заменяем ссылки в метаданных постов (произвольные поля). Если вы туда ничего не добавляли, то скорее всего результат замены будет нулевой.

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://workinet24.ru', '//workinet24.ru');

Заменяем ссылки в комментариях, если они у вас есть. Если комментариев нет, то и запрос такой делать не надо.

UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://workinet24.ru', '//workinet24.ru');

Заменяем ссылки у авторов комментариев, если есть.

UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://workinet24.ru', '//workinet24.ru');

Меняем ссылки во вложениях к постам и страницам.

UPDATE wp_posts SET guid = REPLACE (guid, 'http://workinet24.ru', '//workinet24.ru') WHERE post_type = 'attachment';

и жмем ОК. Всё!

Читайте также:  Лучший хостинг - HandyHost

Не забудьте поменять префикс базы данных wp_ , а также адрес домена на свой!

Этот способ я нашла уже после того, как все сделала. Пробовала другие запросы, найденные в сети, они выдавали ошибку, приходилось делать откат базы. Поэтому постарайтесь не доверять слепо всему, что пишут разные блогеры, и уж точно всегда делайте резервную копию базы данных перед внесением изменений. Этот запрос у меня сработал хорошо и даже нашел 52 ссылки, которые я пропустила, поэтому я могу его рекомендовать как надежный.

  • Я же сделала так: установила плагин Search Regex. Запустила его. Ввела в поле Search pattern имя своего домена, а в поле Replace pattern знак / и нажала последовательно кнопки Search и Replace & Save. После этого плагин был удален.

2. Генерация SSL-сертификата

Поскольку на моем сайте стоит бесплатный SSL-сертификат Let’s Encrypt, то я буду писать только о нем. Его недостаток в том, что срок его действия всего три месяца. Это означает, что процедуру придется повторять каждые 3 месяца. Но зато он бесплатный, а процедура простая и не занимает много времени.

На моем хостинге установлена панель хостинга ISPmanager, поэтому и рассказывать о получении заветного сертификата я буду на ее примере. Повторяю, процедура очень проста.

Переходим в меню панели в подраздел SSS-сертификаты и нажимаем кнопку Let’s Encrypt.

Перед нами открывается новая вкладка, где мы должны будем ввести данные нашего сайта. Если у вас один сайт, то вы увидите, что все данные заполнены автоматически. Если сайтов несколько, то вы должны выбрать нужный в выпадающем списке и нажать кнопку ОК. Вот, собственно, и вся процедура, через некоторое время у вас в панели появится уведомление, что Let’s Encrypt сертификат успешно получен. После получения уведомления, надо будет зайти во вкладку Домены, выбрать нужный домен, дважды кликнуть по нему мышкой и в открывшемся окне поставить галочки в указанных на скриншоте местах:

Читайте также:  Как установить WordPress в панели управления хостингом Paralells Plesk

После этого, перейдя на сайт, в адресной строке браузера вы увидите, что адрес вашего сайта начинается с нужной аббревиатуры https://.

3. Смена адреса сайта в административной панели сайта

После получения (покупки) сертификата SSL, ваш сайт и админ-панель сайта должны быть доступны по обоим протоколам HTTP и HTTPS. В этом случае, можно сменить адрес сайта WordPress в общих настройках админ-панели на вкладке Настройки>>Общие>>Адрес сайта (WordPress), указав протокол HTTPS, как основной.

4. Проверка доступности сайта по https

Для проверки доступности сайта по протоколу https, воспользуйтесь инструментом Яндекс.Вебмастер.

Важно! Недоступность сайта по протоколу HTTPS, а также уже сделанная переадресация, приведет к невозможности войти в административную панель сайта.

Если у вас вдруг возникла эта проблема, то нужно предпринять следующие шаги:

  • Перейти в базу данных вашего сайта (phpmyadmin).
  • Найти таблицу, «wp_options» (в таблице wp_options находятся данные общих настроек сайта);
  • Открыть таблицу кнопкой «Исправить»;
  • Сменить протокол https на http. Он прописан в таблице в явном виде;
  • Сохранить изменения и войти на сайт протоколу http.

5. Исправление ошибок

Как правило, после того, как вы произведете все вышеописанные шаги, вы можете не увидеть долгожданного зеленого замочка в адресной строке браузера. На некоторых страницах вашего сайта он будет открытый или с восклицательным знаком. Называется такая ошибка «Mixed Content», что значит «смешанное содержание». Смешанное содержание, означает, что на странице присутствуют как защищенные (https), так и не защищенные (http) ссылки.

Активное смешанное содержание вашего сайта браузеры будут блокировать и просить разрешить их загрузку. После чего будут показывать, что ваш ресурс «Ненадежный». Вам это надо? Думаю, что нет! Поэтому будем искать и исправлять ошибки.

На странице сайте, которую браузер показывает как небезопасную, нажимаем правую кнопку мыши и нажимаем «Просмотр кода» или Ctrl+Shift+I.

На вкладке «Security» видим предупреждение «Mixed content», а под ним ссылку на список «плохих» ссылок.

Вероятнее всего, это будут ссылки на внешние скрипты, типа кнопок соцсетей, подписок Feedburner, шрифтов Google. Их также необходимо исправить. Желательно, что бы все сайты, с которых что-то подгружается, так же имели защищенное соединение. Если вы не уверены, возможно прописать ссылки без протокола:

Ссылки на Feedburner, VK.com и другие соцсети обычно располагаются в виджетах, в файлах темы. Поэтому я легко их нашла и заменила.

6. Изменение robots.txt

После проделанных выше действий, по сути я имею 2 разных сайта, но с одинаковым содержанием: http://workinet24.ru и https://workinet24.ru

Читайте также:  Лучший хостинг - HandyHost

Чтобы поисковые системы поняли, какой из этих сайтов является главным и какой из них нужно выводить в результатах поисковых запросов, необходимо добавить специальную директиву в конец файла robots.txt.

Добавляем в него или изменяем имеющуюся запись host на запись с указанием протокола вашего сайта — https://workinet24.ru

Если в файле robots.txt у вас есть еще какие-либо директивы, где указывается абсолютный URL-адрес вашего сайта, то необходимо исправить протокол на https и там.

Чтобы удостовериться, что все изменения сохранились, перейдите в браузере по адресу https://ваш_сайт.ру/robots.txt. Должна открыться страница с измененными данными.

7. Добавляем сайт в поисковые системы

Неважно, что вы их там уже зарегистрировали! Можете считать, что сегодня вы изменили доменное имя, поэтому процедуру придется повторить.

Переход сайта на https в Яндекс.Вебмастер

Эта инструкция и рекомендации в ней основываются на официальные рекомендации Яндекса по «деликатному» переезду на https. Автор рекомендаций: Платон Щукин. https://yandex.ru/blog/platon/2778

Добавляем сайт в Яндекс.Вебмастер. Для этого жмем по значку «+»

После этого подтверждаем владение сайтом.

В итоге, у вас в системе будет два отдельных сайта:

1) http://ваш_сайт.ру

2) https://ваш_сайт.ру

Такие сайты называют зеркалами. Поисковому роботу Яндекс нужно сообщить, какое из зеркал является главным.

Для этого заходим в настройки того сайта в Яндекс.Вебмастере, который указан без https и переходим в раздел «Настройки индексирования — Переезд сайта».

и отмечаем галочку «Добавить https». Жмем на кнопку «Сохранить». Как видите, я уже все это сделала и моя заявка обрабатывается Яндексом, а Яндекс в этом плане достаточно медлителен.

После этого количество проиндексированных страниц на добавленном сайте с https будет увеличиваться и в какой-то момент времени (обычно должно пройти несколько недель) оба этих сайта Яндекс.Вебмастер сделает склеенными зеркалами, но один из них будет главным зеркалом.

Переход сайта на https в Google Search Console

Рекомендации Google по переходу на протокол https находятся здесь: https://support.google.com/webmasters/answer/6073543?hl=ru и статья на английском языке с официальными рекомендациями:

https://plus.google.com/+JohnMueller/posts/PY1xCWbeDVC

Исходя из этих рекомендаций все, что необходимо сделать для переезда сайта на https в панели вебмастера (Search Console) — это добавить новый сайт с HTTPS в список сайтов.

Для этого жмем по кнопке «Добавить ресурс»

и вводим имя сайта с https. Больше никаких дополнительных действий именно в Search Console производить не нужно.

Вот, собственно, и все. Ваш сайт теперь надежен с точки зрения поисковиков и браузеров.

P.S. Совсем забыла! После перехода на https перестали работать плагины WP Fastest Cache и WP Fastest Cache Premium, которые я считаю лучшими плагинами для кэширования и оптимизации сайта — о них написано в этой статье. Новая переустановка ничего не дала и я расстроилась. Проблема решилась удалением плагина Yoast SEO, его новой установкой и настройкой. После этого вышеуказанные плагины установились и начали работать.

Всем удачи при переходе на безопасный протокол!


Посмотрите другие статьи из этой рубрики:




Хотите быть в курсе новостей блога?

Подпишитесь на бесплатную рассылку новых статей
Ваш e-mail:

2 комментария

  • Спасибо, Татьяна, за такую понятную инструкцию! Я воспользовалась плагином Velvet Blues Update URLs. К слову, у меня все хорошо с WP Fastest Cache, он не удалился, а даже обновился!

  • Ирина, не факт, что работает! У меня он тоже работал. Якобы работал!!! Проблема обнаружилась при проверке сайта в PageSpeed Insights, он просто не выполнял свою работу по минимизации CSS, JS и HTML. Так что проверьте свой сайт в https://developers.google.com/speed/pagespeed/insights/ Если присутствуют вышеуказанные проблемы, то придется их исправлять.

Есть что сказать? Оставьте комментарий!

%d такие блоггеры, как: