Переезд сайта на https. Пошаговая инструкция

В первых числах октября принял решение о переезде сайта на протокол https. Если ранее Google просто рекомендовал использовать https, то теперь в обновленной версии Chrome появился зелёный замок сообщающий о том, что подключение к сайту защищено.

Переезд сайта на https

И значок «i» по клику на который появляется информация о том, что сайт не защищен.

Http и https в браузере

Hoster.by начал предлагать SSL сертификаты. Обоснование применения такое:

SSL-сертификат — это стандарт шифрования, который устанавливает безопасное соединение между клиентом и сервером. Другими словами, это гарантия того, что данные между браузером и вашим сайтом будут передаваться по защищенному каналу. Как следствие, SSL-сертификат информирует посетителей сайта о том, что вашему ресурсу можно доверять.

Exler.ru, Devaka.ru, Blisch.by переехали на HTTPs. В целом переехал и я. Ниже о том, как сделать https для сайта, купить, установить SSL-сертификат, подготовить сайт к переезду,  сделать переадресацию с http на https, проследить за правильностью переезда.

Как сделать https для сайта

В качестве эксперимента установил бесплатный SSL-сертификат на неосновной домен, в целом ничего сложного. SSS-сертификат со сроком действия 3 года обошелся в 14$.

Больше беспокоил, тот факт, что https версию сайта поисковики воспринимают как новый сайт и как следствие нужно сделать правильные редиректы, чтобы не потерять текущие позиции, посещаемость.

Составил план по переезду на https в MindMeister, в процессе план корректировался финальная версия.

Как сделать https для сайта

Мой результат на 23.10.2016 — сайт работает на https, в индексе поисковиков страницы с https, позиции восстановились, слетел до 0 ТИЦ (возможно временно).

Подготовка сайта к переезду

Markevich.by работает на Wordpress, хостингом управляю через Cpanel. Вся приведённая ниже методика работает на Wordpress и CPanel.

Первым делом сделал в Cpanel резервную копию базы данных и копию всей корневой директории. На всякий случай.

hoster-by-cpanel-copy

Поле того как будет изменен протокол на https все ссылки внутри блога окажутся неправильными. Готовлюсь, меняю все ссылки на относительные (относительно протокола).

Были ссылки с http.

Ссылки c http

C помощью нескольких SQL-запросов к базе данных убрал протокол из всех ссылок на сайте. Генератор SQL-запросов для переезда сайта — https://truemisha.ru.

Генератор SQL-запросов

Краткое описание перечисленных SQL запросов:

  1. Первый запрос обновляет параметры «Адрес WordPress» и «Адрес сайта» в Настройки > Общие (не нужен).
  2. Второй запрос затрагивает содержимое постов — URL картинок и внутренние ссылки.
  3. Третий запрос обновляет метаданные постов (произвольные поля). Там редко можно найти URL сайта, но подстраховаться не помешает.
  4. Четвертый и пятый запросы относятся к комментариям (содержимое комментария и сайт автора).

Итог выполнения SQL-запросов — затронуто более 10 000 строк.

Итог выполнения SQL-запросов

Теперь все ссылки в статьях стали относительными.

Относительные ссылки

Покупка SSL-сертификата

В Беларуси покупать сертификат дорого. Выбрал SSL-сертификат — Comodo PositiveSSL (сравнить с другими можно здесь). Купил в GogetSSL — 14$ на три года.

Покупка SSL-сертификата

Оплатил. На русском языке только первая страница сайта, потом идет переадресация на английскую версию сайта.

GogetSSL - первый заказ

На первом шаге необходим CSR.

Comodo Ppozitive SSL

Сгенерировать CSR можно в CPanel, перехожу в Безопасность/SSL/TLS.

Безопасность - SSL - TLS

Создаю закрытый ключ.

Cpanel - закрытый ключ

Для каждого установленного сертификата SSL должен быть сгенерирован новый файл ключа.

Cpanel - закрытый ключ

Новый закрытый ключ создан.

Cpanel - закрытый ключ создан

Дальше возвращаюсь к Gogetssl и CSR. В Cpanel это запрос на подпись сертификата (CSR). Создать, просмотреть или удалить запрос на подпись сертификата SSL.

Запрос на подпись сертификата (CSR)

В итоге будет создан запрос, который можно использовать в Gogetssl.

Запрос на подпись сертификата (CSR) создан

Зашифрованный запрос на подпись надо вставить в форму вместе с верхней и нижней строками:

  1. ——Begin certificate request——
  2.  ——End certificate request——

Конфигурация CSR

После вставки жму — Validate CSR.

Validate CSR

Следующий шаг — прохождение валидации домена, выбираю — email.

Подтверждение домена

Проверяю почту, приходит подтверждение.

Результат проверки домена

В письме код и ссылка на страницу в которой его надо ввести. Ввожу.

Сomplete generation

SSL сертификат теперь активирован.

SSL сертификат активирован

Можно его скачать и начать установку на сайт. SSL сертификат также приходит на почту.

Скачать SSL сертификат

Установка SSL-сертификата

Теперь иду в Cpanel в Сертификаты (CRT) — Создать, просмотреть, отправить или удалить сертификаты SSL.

Установка SSL-сертификата

Выбираю свой сертификат и передаю.

Сохранить SSL-сертификат

Кроме сертификата для домена есть еще 3. Передаю их все. Дали — пускай будут.

SSL-сертификаты на сервере

Перед тем как отсюда уйти, жму изменить сертификат для markevich.by и копирую зашифрованный сертификат (вместе с begin).

Дальше перехожу снова в Cpanel и в этот раз выбираю — Установка и управление SSL для сайта (HTTPS). Управление сайтами с SSL.

Управление узлами SSL

Выбираю домен для которого буду устанавливать сертификат. Вставляю из буфера обмена сертификат. Ранее создавал закрытый ключ, его тоже вставляю в следующее окно.

Пакет центра сертификации: (CABUNDLE) не трогаю.  Включить SNI для почтовых служб — оставляю включенным. Нажимаю установить сертификат.

Установить SSL сертификат

Жму установить сертификат.

Установить сертификат

Около 15 секунд идет установка. Итоговое сообщение.

Узел SSL установлен успешно

Сертификат установлен и теперь сайт доступен по 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.

Переадресация с http на https

Устранение ошибок

Есть ряд ошибок которые не дают появиться зеленому замку. Chrome помогает найти причину.

Устранение ошибок при переезде на https

Исправляю ошибки.

Устранение ошибок при переезде на https

SSL-сертификат установлен. Сайт доступен только https. Меняю относительные внутренние ссылки на ссылки с https.

Индексирование в Яндекс и Google сайта с https

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

Индексирование в Google сайта с httpsИндексирование в Яндекс сайта с https

Жду пока Яндекс склеит сайты.

Яндекс - склейка сайта

После чего отключаю игнорирование редиректа для robots.txt удаляя две строки в htaccess

RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]

В процессе позиции сайта в какой-то момент провалились, но не надолго.

Провал в позициях сайта https

Всё. Осталось дождаться пока восстановиться ТИЦ Яндекса и тогда переезд сайта на https можно считать удачно завершённым.

Обсуждение: 48 комментариев
  1. Дмитрий:

    Еще вариант магазина, где можно выгодно купить SSL-сертификаты — LeaderSSL.ru. Тоже разные бренды, широкий выбор + компания имеет свой офис в Москве. Среди их клиентов сам Яндекс.

    Ответить
    1. Денис Маркевич:

      Если покупать дорого, то есть смысл купить у хостера. Установят SSL-сертификат бесплатно.

      Ответить
    2. Сергей:

      яндекс сам себе выдал сертификат. Или я не туда смотрю

      Ответить
  2. Виталик:

    Не совсем понятны новые требования поисковых систем. Зачем такой сертификат информационному сайту, при посещении которого человек не передает и не получает никаких персональных данных?
    А вообще посмотрел, конечно, не мало геморроя с этим переездом…

    Ответить
    1. Денис Mаркевич:

      Да, информацию связанную с деньгами мы не передаём, но технически у провайдера есть возможность отслеживать и составлять аватары каждого клиента и потом продавать эту информацию заинтересованным компаниям. В карте давал ссылки по теме.

      Таким образом, благородная цель Google защитить пользователей, настоящая — поднять свои доходы.

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

      Ответить
      1. Виталик:

        В общем, Windows 10 следит, Google следит и так далее… Ну, благо, теперь хоть провайдер не сможет отследить по аватарке. 😉

        Ответить
        1. Денис Маркевич:

          При условии, что все перейдут на https. Google в этом направлении работает с 2014 года.

          Теперь когда основным браузером можно считать Хром, то вероятность того, что своего они добьются велика. Нет https — тебя нет в поиске.

          Ответить
          1. Виталик:

            Опять возникает чувство дежавю. Что-то подобное не так давно было и с микроразметкой для сайтов.

            Ответить
            1. Денис Mаркевич:

              Да, были рекомендации google и «шум» в интернете. Себе ее внедрил, каких-то огромных преимуществ не вижу, разве, что в Google вебмастере сообщения об ошибках пропали.
              По https по моему сейчас довольно тихо, сайты просто переезжают. Свой взгляд на https отразил выше. Стоит недорого, новым сайтам использовать обязательно, чтобы потом не возится с переездом.

              Ответить
              1. Виталик:

                Конечно, понимаю, что надо будет это делать со временем. Но все-таки повременю, поскольку техническая часть процесса не совсем простая.

                Ответить
  3. Михаил:

    Подскажите какой сервис отслеживания позиций на последнем скрине.

    Ответить
    1. Денис Маркевич:

      SE Ranking

      Ответить
  4. Bahus:

    Тоже переполз. Только тиц нулевой стал. Жду и надеюсь на восстановление.

    Ответить
    1. Денис Mаркевич:

      Читал мнение, что несколько месяцев до восстановления ТИЦ может пройти. Google оперативнее отреагировал. Все старые внешние ссылки для сайта с https уже появились. У Яндекса — нет.

      Ответить
      1. Bahus:

        Яндекс всегда был тормозом. 🙂 Хотя в поиске вроде ссылки уже с https.

        Ответить
        1. Денис Mаркевич:

          В поиске ссылки с https появились быстро. У меня ТИЦ до появления в панели вебмастере о склейке сайтов был для версии с https и http равным 60. Появилось сообщение о склейке — ТИЦ слетел.

          Ответить
          1. Bahus:

            Гугля отреагировал на переход на https подъемом позиций. Небольшим, но все же подъемом. В яндексе позиции скачут. Ждемс.

            Ответить
            1. Денис Mаркевич:

              Аналогично. Пара недель и уже у меня будет месяц как сайт на https.

              Ответить
        2. Денис Mаркевич:

          5 декабря ТИЦ поднялся до 50. Можно сказать, что переезд на https завершен и прошёл гладко.

          Ответить
  5. Eva:

    Здравствуйте! Спасибо за статью.
    Я не могу разобраться с картинками на сайте.
    Вроде переезд на https сделала, а все картинки остались на http. При этом когда загружаю новую картинку на сайт, она тоже грузится на http.
    Что с этим можно сделать?

    Ответить
    1. Денис Mаркевич:

      Здравствуйте, у меня после смены http на https в самом движке wordpress (в панели управления) всё стало работать через https. Картинки при этом доступны как по http, так и с https.

      Ответить
  6. Nata:

    Здравствуйте! Спасибо за статью. В последнее время тема много шума навела. Очень много противоречий даже у самого Яндекса, как нужно правильно переводить сайт. Яндекс сразу написал, что нужно в роботс.тхт прописать хост https, а потом ЯНДЕКС многим в личной переписке написал, что нужно прописывать только после склейки доменов http и https.
    Кстати у меня Ваш код в htaccess RewriteEngine On
    … RewriteRule ^(.*)$ https ://%{HTTP_HOST}/$1 [R=301,L] делает почему-то сайт не рабочим.
    В результате, у меня сейчас в htacess работает этот код:
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
    RewriteRule ^([^/]+) $1 [L]
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^ https ://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
    Я всё сделала, у меня полностью работает сайт на https корректно. Только хотелось бы немного уточнения с Вашей стороны, как правильно сообщить Яндексу и Гуглу о нашем новом сайте https? В Яндексе: просто добавить сайт в список с подтверждением прав на него и размещением у себя на сервере файла или «Настройка индексирования» — «Переезд сайта» — «Добавить HTTPS». А в Гугл как добавить? Здесь бы хотелось больше подробностей! Может кому-то и покажется очевидным фактом, кто делал это множество раз… Очень хочется сделать всё правильно с первого раза. Заранее спасибо!

    Ответить
    1. Денис Mаркевич:

      Здравствуйте, я в роботс сразу прописывал https. Возможно поэтому ТИЦ ко мне возвращался несколько месяцев.
      Тип кода в htaccess зависит от настроек у хостера, проще ему сразу написать и спросить, что надо прописать.
      В Яндексе добавлял новый сайт, потом использовал переезд сайта, потом добавлял sitemap, проверял роботс.
      В google просто добавил новый сайт с https. Для всех других его версии указал в Search Console основной домен.

      Ответить
  7. Nata:

    Большое спасибо! Все пункты проделала, буду ждать переиндексации.

    Ответить
    1. Денис Маркевич:

      Удачи. На текущий момент из замеченных плюсов:
      1. В адресной строке отображается замок зелёный (это раньше было) и слово «Надежный».
      2. Подписка на Push уведомления для https происходит в один клик, не надо никаких сторонних прокладок.

      Ответить
  8. Сергей:

    Денис добрый день
    покупали ли вы выделенный IP ? Нужен ли он для установки сертификата?

    Ответить
    1. Денис Маркевич:

      Добрый. Нет, выделенный IP не покупался. Как понял он нужен только для нормальной работы сильно устаревших браузеров.
      По данным я.метрики такими у меня на сайте никто не пользуется.

      Ответить
      1. Сергей:

        Понятно, похоже мой хостер (active.by) просто выключил возможность установки сертификата с панели (ISP). Буду писать запрос в тех.поддержку.

        Ответить
        1. Денис Маркевич:

          Возможно хотят, чтобы вы SSL-сертификат у них покупали.

          Ответить
          1. Сергей:

            после переписки с тех.поддержкой понял, что Актив просто отключил на виртуальном хостинге TLS и соответственно у них https возможен только на выделенном IP. Придется покупать ip…

            Ответить
            1. Денис Маркевич:

              Сейчас видя сколько стоит хостинг в Германии для сайтов не коммерческой направленности выгодно размещаться там.
              Когда переходил к hoster.by еще не до конца понимал как и что работает, теперь знаю.

              Ответить
  9. Nata:

    Подскажите, а что это может значить? При «переезде сайта» с http на https в вебмастере Яндекс сначала появилась фиолетовая полоска вверху «В ближайшее время в результате поиска вместо домена http появится https»? а спустя наверное 1 недели-1,5 появилась лента красного цвета «Внутренняя ошибка сервиса. Попробуйте повторить запрос.» У кого-нибудь было что-то подобное и как можно решить данную проблему?

    Ответить
    1. Денис Маркевич:

      Могу только предположить неправильно настроенный 301 редирект. Сравните все ответы вашего сайта с ответами моего. Мой переехал и может использоваться как шаблон.

      Ответить
      1. Nata:

        Да нет, Денис, я код вставила правильно (ещё чуть выше Вам писала, что Ваш код мне подошел не весь), я запрашивала у хостинга. Только недавно обнаружила, размышляя над причинами проблемы, что у меня несколько htaccess: в директории сайта «public_html». Выглядит это так: сайт 1, сайт 2, htaccess. При открытии каждой папки в отдельности сайт 1, сайт 2 имеется свой htaccess. Так вот мне подумалось, а не читает ли ПС первый htaccess, который находится вне папок сайтов? Там ведь и в помине нет того редиректа, который я устанавливала для своего сайта. Вообще не пойму от куда этот файл htaccess взялся, может хостинг установил когда-то, а я не заметила.

        Ответить
        1. Денис Mаркевич:

          В Яндекс.Вебмастере есть инструмент Проверка ответа сервера. Вводите туда страницу без s, т.е. http. В ответе должен быть 301 Moved Permanently.

          Ответить
          1. Nata:

            Проверила ответ сервера, всё как Вы написали 301 Moved Permanently. Location: сайт с https Значит, читает ПС всё правильно, что ей и положено.

            Ответить
            1. Денис Mаркевич:

              Robots.txt доступен как по http так и по https, т.е. ни для первого ни для второго варианта нет редиректа?
              Других предположений в чём может быть у вас проблема у меня нет. Обращайтесь к специалисту который посмотрит ваш сайт и решит проблему.

              Ответить
              1. Nata:

                Robots.txt доступен по https и http (с http перенаправляет к https). А может вообще не в моем сайте дело, а просто сервисная ошибка Яндекса, такое ведь тоже может быть. Глюк системы! 🙂 Спасибо за Ваши ответы.

                Ответить
                1. Денис Mаркевич:

                  На 4 шаге в карте «!» поставил на строке в которой написал, что не должно быть редиректа для роботса на протоколе http (по тексту статьи об этом тоже писал).

                  Ответить
                  1. Nata:

                    Очень важное дополнение. Спасибо большое! 🙂

                    Ответить
  10. Александр:

    Добрый день Подскажите, что будет с внешними ссылками на сайт при смене протокола HTTP на HTTPS? На сайт есть ссылки через HTTP, но при смене протокола сайт будет доступен по HTTPS. И придется делать редирект HTTP на HTTPS. Поисковики посчитают внешние ссылки битыми, а вес с них потеряется?
    Так же с моего сайта берут картинки и вставляют себе на сайт, после смены протокола изображения будут недоступны по HTTP?
    Что то я вообще запутался

    Ответить
    1. Денис Mаркевич:

      В панели вебмастера на сайте с https отображаются все внешние ссылки которые были на http версии сайта. Картинки можно оставить доступными как по http так и по https (у меня так и сделано).

      Ответить
      1. Александр:

        Денис спасибо что ответили!
        Какие то преимущества от того что перешли https ощутили?
        У вас сейчас сертификат от COMODO как и писали в статье? А то посмотрел, ваш хостер предлагает сертификаты и цены приемлемые.

        Ответить
        1. Денис Mаркевич:

          В строке поиска надпись — надежный, подписка на push уведомления в 1 клик. Сертификат тот же остался, я его сразу на несколько лет оплачивал.

          Ответить
  11. Василий:

    Здравствуйте!

    При добавлении сайта с https в ЯВ появляется надпись:
    «https://site.ru» — это не главное зеркало сайта site.ru. Робот индексирует только главное зеркало.

    И варианты как добавить сайт с https:
    1 — Добавить главное зеркало, site.ru
    2 — Всё равно добавить «https://site.ru»

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

    Какой вариант выбрать и какой вариант выбрали Вы при добавлении сайта с https в ЯВ?

    P.S. Редирект 301 настроен, robots.txt доступен по обеим адресам, в «Переезде сайта» уже отметил «HTTPS» и есть сообщение об изменении адреса site.ru на «https://site.ru». Теперь решил добавить сайт «https://site.ru», так как убедила Ваша статья, спасибо!

    Ответить
    1. Денис Mаркевич:

      Здравствуйте Василий, у меня в карте расписана вся последовательность моих действий в следствии которых был осуществлен успешный переезд.
      Версия с https у меня не сразу стала главной, через какой-то промежуток времени.
      Если ваша последовательность действий отличается от моей, на каком-то этапе вы решили, выполнить то, что делал я, то результат я предсказать не могу, т.к. перевод сайтов на https не моя работа, делал для себя из интереса и из своего понимания основанного на знаниях полученных в SEO марафонах.

      Ответить
  12. Александр Алексеенко:

    Спасибо за инструкцию, особенно порадовал момент массового изменения ссылок на сайте, иногда такое требуется сделать по определенным причинам, и знал, что через базу данных 1 запросом, но не знал, что писать в запросе. А тут все понятно! =) Пока перевел один из своих сайтов, поглядим как он себя поведет.
    А тем, у кого трафик из Яндекска, если вы не любитель технических квестов по переносу сайтов, и не принимаете денег на своем сайет, то сам Платон Щукин рекомендует:
    1. Нужно ли переходить на HTTPS? Поможет ли это улучшить позиции?
    В поисковой системе Яндекс сайты по протоколу HTTP/HTTPS индексируются и участвуют в поиске на равных условиях. Принимая решение о подключении SSL-сертификата, ориентироваться стоит на безопасность пользователей. Например, в случаях, если на сайте можно совершать покупки или другие операции с финансами.
    2. Планируете ли вы помечать все сайты по протоколу HTTP как небезопасные?
    Таких планов в настоящий момент нет.

    Ответить
    1. Денис Маркевич:

      Спасибо за отзыв. С Яндексом понятно, он ка бы идет своей дорогой со своим браузером. Кстати в котором не знаю есть ли зеленая строка в адресной строке. На мой взгляд сайты с зеленой строкой (https) в Chrome вызывают большее доверие. Говорит, как бы, о серьезности автора.
      Еще одна инструкция готовится по переезду с одного хостинга на другой. Сидел на белорусском, переехал на российский. Причины и процесс в одной из следующих статей будут подробно описаны.
      В настоящий момент сайт на новом хостинге, вылавливаю косяки. Установка сертификата SSL на новом хостинге проходит быстро.

      Ответить

Ваш комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

© 2017 Денис Маркевич · Копирование материалов сайта без разрешения запрещено
Дизайн и поддержка: GoodwinPress.ru