Перевод сайта WordPress на HTTPS: инструкция технического перехода


Вводная часть

Начало года хороший повод, улучшить оптимизацию сайта и первыми шагами я выбрал скорость загрузки и переход на HTTPS. О том, что Google ввел «благосклонность» к сайтам, работающим по протоколу HTTPS, вместо HTTP, написано много статей и известно всем интересующимся оптимизацией своего сайта.

HTTPS и HTTP

Что такое HTTPS и чем он (протокол) отличается от HTTP лучше почитать более компетентные ресурсы. Безопасный протокол соединения (HTTPS) напрямую связан с получением сайтом сертификата безопасности, SSL. Покупая, вернее арендуя, домен по своим паспортным данным, вы уже имеете самый слабый сертификат безопасности. Но этот сертификат на дает вам, «зеленый замок» в адресной строке браузера.

Зачем переходить на HTTPS

Опять-таки, о мотивациях перехода на HTTPS написано масса статей. Я перечислю те причины перехода на HTTPS, которые мотивировали меня:

  • Сообщение Google, что HTTPS стал фактором ранжирования;
  • Заявление Mozilla, о прекращении поддерживать в своем браузере HTTP соединения (http://www.securitylab.ru/news/472588.php);
  • Вероятность Яндекс последовать общей тенденции и в очередной раз поставить всех «на уши».

Три мифа о SSL

Миф 1. Для SSL нужен отдельный IP. Чушь. На моем хостинг плане, только моих сайтов две дюжины, и IP я не покупал и все сайты перевел на SSL причем, бесплатно. Более того, на моем VDS у меня отдельный IP, а стоимость SSL (V) 500 рублей на каждый домен.

Миф 2. SSL обнуляет ваш тИЦ. Это не так. У вас был тИЦ сайта http, он так и остался. Если вы правильно оптимизировали сайт после перевода на https, и сообщили Яндекс ваше новое зеркало, после первого после перехода апдейт тИЦ восстановит ваш прежний тИЦ.

Миф 3. Для некоммерческих сайтов SSL не нужен. Посмотрим 31 января 2017 года. Именно тогда выйдет новый, Chrom 5.6 с красными флагами для всех небезопасных сайтов.

Напористость Google в процессе сертификации сайтов, рано или поздно, перекинется и на Яндекс, а вот он предупреждать не будет и введет новый фильтр для «Небезопасных сайтов».

Перевод сайта WordPress на HTTPS – Задача

Итак, задача. Перевести сайт WordPress на отклик по безопасному протоколу https, то есть, сайту нужно получить сертификат безопасности SSL.

Важно! Задача перехода на HTTPS для сайта WordPress, состоит из трех взаимосвязанных, но практически независимых задач:

  1. Техническое подключение защищенного протокола SSL;
  2. Переадресация сайта http:// на сайт https://
  3. Замена всех внутренних ссылок сайта на безопасные ссылки https:// или на относительные ссылки.
  4. оптимизация переезда на новый протокол, для восстановления (сохранения) поисковых позиций.

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

Примечание:  На момент выхода статьи, я еще не готов сказать, что дал мне переход на HTTPS (SSL), кроме потраченного времени и «зеленого замка» в адресной строке.

Техническое подключение защищенного протокола SSL

На сегодня, есть несколько схем подключения защищенного протокола SSL: платные и бесплатные.

  • Платно, вы можете купить сертификат безопасности в специальных центрах сертификации (CA), от 500 рублей за домен в год, получить два ключа и показать эти ключи на своем хостере. Эта статья не об этом.
  • Некоторые хостинги, предоставляют бесплатную услугу подключения защищенного протокола SSL к любому домену.
  • Использовать облачные сервера в услуги которых, входит получение SSL.
  • Покупать сертификат безопасности, для не коммерческого сайта я бы не стал. Не вижу смысла. Мне повезло, я смог техническое подключение защищенного протокола SSL выбрать по бесплатной схеме, так как мой хостер предоставляет такую услугу бесплатно.

Примечание: В предоставлении хостинг компанией бесплатных SSL сертификатов нет ничего не обычного. С тех пор как появился центр бесплатной сертификации Let’s Encrypt (о нем ниже), любая хостинг компания может установить и бесплатно предлагать сертификацию SSL своим клиентам. Список западных хоcтинг, компаний работающих с Let’s Encrypt тут. Среди отечественных могу посоветовать:

  • AgHost.biz;
  • HostLand.ru;
  • Firstvds.ru.

Итак, я могу включить протокол SSL на сервере своего хостера.

Включить протокол SSL на сервере своего хостера

Шаг 1. Предварительная проверка сайта

Начнем с проверки, а вдруг ваш домен уже имеет сертификат. Предлагаю следующий инструмент проверки: (https://www.sslshopper.com/).

Шаг 2. Для домена сайта, в административной панели, включаем поддержку режима SSL.

Шаг 3. Подключение сертификата на сервере хостинга

Смотрим в панели DirectAdmin. Вкладка «SSL сертификаты». Повторюсь, мой провайдер предлагает стандартные варианты получить сертификат безопасности и среди них, вариант: Free & automatic certificate from Let’s Encrypt.

Мой сайт некоммерческий и мне вполне достаточно, получить сертификат на Let’s Encrypt (https://letsencrypt.org/) тип сертификата: Internet Security Research Group (ISRG).

  • Заполняем поля, указывая email из своих регистрационных данных.
  • Размер ключа должен быть не менее 2048-бит. У меня есть выбор 4096 бит.

Примечание: В рекомендации Google о переходе на HTTPS //support.google.com/webmasters/answer/6073543?hl=ru, говориться о приоритете 2048-бит по отношению к 1024-битному  ключу, о ничего нет и большем размере.

  • После заполнения всех полей сохраняемся и видим результат.

Бесплатный сертификат Internet Security Research Group (ISRG) для некоммерческих сайтов получен от Let’s Encrypt. Чтобы сертификат включился фактически должно пройти время.

Вернемся к проверке на сайт «SSL Certificate Comparison and Reviews» (https://www.sslshopper.com/). Делаем проверку, видим совсем другую картину.

Перевод сайта WordPress на HTTPS проверка

Как видим, сертификат есть. Получение сертификата SSL, это лишь начало. Всё самое «интересное» впереди.

Что делать на сайте WordPress после подключения SSL сертификата

Прежде всего, проверяем доступность сайта по двум протоколам: http и https.

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

Доступность сайта по двум протоколам,- говорят знающие оптимизаторы, является негативным фактором для поисковиков и отрицательно влияет на позиции сайта в выдаче. Верим и делаем переадресацию http на https.

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

Способ 1. Мне опять везет, я делаю это из панели своего хостинг провайдера.

Способ 2. Если ваш сайт работает в веб-сервисом Apache, то в файл .htaccess, который должен быть в корне сайта. Вписываем две директивы для Apache:

RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

Если ваш сайт работает на «чистом» Nignx, то файл .htaccess не поможет, пишите в суппорт и спрашиваете, что делать.

Способ 3. Работает при доступности сайта по двум протоколам: http и https и не отменяет первые два пункта. Идете в панель сайта WordPress, на вкладку Настройки>> Общие>>Адрес сайта и Адрес сайта WordPress. В этих двух формах, вписываем домен сайта сайт с https.

Если сайт не был доступен по https, вы потеряете доступ в панель.  Чтобы восстановить доступ, читаем тут или смотрим видео:

Первая проверка перевода сайта WordPress на HTTPS

После правильно выполненной переадресации, ваш сайт должен открываться только по безопасному протоколу https. Чтобы не путаться, обновите закладки в браузере.

Меняем ссылки сайта WordPress

Для сайтов WordPress, в отличие от сайтов на Joomla, нужно все существующие ссылки на сайте перевести в протокол https. Было бы хорошо, чтобы все внешние ссылки, тоже были безопасными. Если это не возможно, на этих страницах, вместо зеленого замка в строке браузере, будет предупреждение о наличие на сайте небезопасного контента. Называется эта ошибка, Mixed Content (смешанное содержание).

Относительный адрес:

/image.jpg

Относительный адрес вне зависимости от протокола:

//sitename.ru/image.jpg

Абсолютный адрес разрешенный SSL:

https://sitename.ru/image.jpg

Абсолютный адрес Mixed Content:

http://sitename.ru/image.jpg

  • Чтобы устранить смешанное содержание (Mixed Content) на сайте WordPress, вам нужно. Все внутренние абсолютные ссылки сайта указанные с http, перевести в относительные ссылки типа: //domen.ru/content. В этом случае, браузер сам решает, безопасный протокол или нет.
  • Все внешние ссылки должны быть с ресурсов поддерживающих протокол HTTPS, иначе браузер покажет ошибку «Mixed Content».

Самый простой способ это сделать, установить специализированный плагин WordPress. Я пробовал два плагина:

  1. «HTTP/HTTPS». Этот плагин без настроек. Замечены преобразования не всех ссылок.
  2. «Easy HTTPS (SSL) Redirection». Этот плагин с легкими настройками. Добивает недостатки первого плагина.
Перевод сайта WordPress на HTTPS плагины
Перевод сайта WordPress на HTTPS плагин HTTP-HTTPS

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

Важно! Перед установкой этих или этого плагина, проверьте доступность сайта по двум протоколам http и https. Если видите ошибки, вероятно, не включен режим SSL на сервере. Проверьте его подключение в панели хостинга, если всё включено пишите в тех.поддержку.

Если после установки плагинов сайт пропал, идите на сайт по FTP и правьте файл .htaccess. Именно в него эти плагины записывают правила переадресаций.

Нужно ли менять адреса в настройке Общие

Это важно! Если вы сделали переадресацию http на https в панели хостинга, то НЕ НУЖНО менять адреса в настройке Общие. Этим вы создадите циклическую переадресацию и сайт (вернее админ панель) будет недоступна. Исправить это не сложно (видео выше).

Что делать со ссылками в скриптах

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

Вторая проверка сайта

Если после смены всех ссылок сайта вы все равно видите предупреждение браузера о ненадежности сайта, делаем вторую проверку в браузере Google Chrome.

  • Откройте сайт в браузере. На правой кнопке мыши, открываем «Просмотр кода».
  • Внизу или справа окна браузера появится окно инструментов.
  • На вкладке Security, вы увидите подключенные сертификаты и если есть, сообщение об Mixed Content .

  • На вкладке Console. Вы увидите, перечисленные проблемные ссылки «Mixed Content» с нормально читаемыми пояснениями.

Ко всему прочему:

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

Выводы

Перевод сайта WordPress на HTTPS закончен технически. Важно понять следующее: Переход на протокол HTTPS возможно приведет к потере позиций в поисковой выдаче. Ваша следующая задача, минимизировать потери, чтобы это проседание трафика было временным. Об этом в следующей статье.

©www.wordpress-abc.ru

Статьи о безопасности


Отправить ответ

5 Комментарий на "Перевод сайта WordPress на HTTPS: инструкция технического перехода"

Уведомлять
500
Сортировать по:   новейший | прошлые

Сейчас многие хостеры добавляют в cPanel функционал по активации сертификатов Let’s Encrypt. Кроме перечисленных в статье хостеров, которые имеют подобный фунционал, могу еще добавить HOSTiQ.ua, где я размещаю несколько своих сайтов. Еще стоит упомянуть недостатки Let’s Encrypt:

– необходимость продления через 90 дней (не на всех хостингах можно настроить автоматическое продление);
– Невозможно защитить IDN домены;
– Let’s Encrypt только DV сертификаты.

Интересно, что при получении ssl через Let’s Encrypt с помощью панели управления хостера выбираешь длину ключа 4096 бит, а когда нажимаешь на замочек в строке браузера, в подробной информации о защищенном соединении написано, что длина ключей 128 бит. Как это понимать? Кстати, у вас на сайте тоже показывает 128бит.

Здравствуйте! Спасибо за полезную статью. Можете подсказать, почему, несмотря на все это, браузер помечает ваш сайт как небезопасный (у меня тоже самое, даже после всех ухищрений с переводом на https)? Вот картинка https://cloud.mail.ru/public/9cCb/MveAZ3ijY

wpDiscuz