Защищенный протокол HTTPS применяется для повышения безопасности при обмене данными между пользователем и сайтом. Он представляет из себя обычный протокол http плюс шифрование с помощью криптографического протокола SSL.
Переход на защищенный протокол, как правило, диктуется двумя причинами:
- внедрение на сайте электронной коммерции и необходимость защиты платежных данных, вводимых покупателями;
- стремление получить преимущества в ранжировании со стороны поисковых систем. По крайней мере, google уже заявлял, что сайты на https получат бонус в поисковой выдаче.
Вновь создаваемые сайты рекомендуется сразу делать на защищенном протоколе, что потом не терять трафик при переводе на него.
В качестве проверки, что все сделали правильно ориентируемся на появление значка с замком в браузере гугл хром. Ниже показаны изображения, как это выглядит, когда на сайте стоит сертификат SSL и когда его нет.
Поскольку изменение протокола влечет изменение адресов страниц, это невозможно сделать без временной потери позиций в поисковых системах. Но здесь нужно думать о будущем с точки зрения SEO. В вебмастере яндекс тоже стала появляться рекомендация, что нужно перевести сайт на безопасный протокол. Видимо, в ближайшем будущем эта поисковая система будет учитывать этот фактор в ранжировании.
Рекомендации ниже даны прежде всего применительно к движку Вордпресс, но большая часть советов подходит для всех движков.
Используем бесплатный сертификат
В этой статье опишу самый простой и быстрый способ перевода сайта на https. При этом будем использовать бесплатный SSL сертификат, предоставляемый самим хостингом. Эти советы подойдут для большинства сайтов, работающих на виртуальных хостингах.
Я обычно использую хостинг Beget. Кроме Beget бесплатные сертификаты раздает, например, timeweb, sprinthost и другие крупные хостинги.
Сначала нужно выпустить сертификат. В панели хостинга Бегет для этого нужно зайти в раздел «Домены и поддомены». У названия домена, который собираемся переводить на https жмем кнопку SSL (на скриншоте отмечено цифрой 1). Цифрой 2 отмечен значок, который появится после того, как сертификат будет выпущен.
В появившемся интерфейсе жмем кнопку Установить. Заявка на выпуск сертификата будет отправлена.
Дальше нужно дождаться, когда он будет выпущен, о чем вы получите сообщение на емейл, а возле названия сайта в предыдущем интерфейсе появится значок с замком, о котором я писал в предыдущем абзаце.
Изменение настроек сайта
Далее нужно поменять адрес сайта в административной панели сайта WP. Для этого заходим в «Настройки – Общие» и меняем в полях Адрес WordPress (URL) и Адрес сайта (URL) значение http на https.
Редирект с http на https
Через htaccess
Принудительное перенаправление на новый протокол проще всего сделать через файл htaccess. Для этого открываем .htaccess (расположен в корневой папке вашего сайта) и в его начале размещаем инструкции переадресации:
1 2 3 |
RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
Если это не прописать, то оба протокола будут работать отдельно и сайт будет открывать как с http, так и с https.
Теперь же, после добавления указанного кода, если посетитель попробует обратиться к странице по протоколу http произойдет автоматический 301 редирект страницы на https.
Это наиболее правильный редирект, поскольку настройки работают универсально как с www, так и без www, и для всех страниц.
С помощью плагина Really Simple SSL
Устанавливаем плагин Really Simple SSL. Активируем его и в появившемся окне жмем кнопку «Вперед, активируйте SSL!»
Плагин автоматически будет делать редирект, и преобразовывать внутренние ссылки на https. Внешние ссылки не будут затронуты. В базе данных ссылки также не будут изменены.
Устанавливаем плагин для устранения смешанного контента
Этот плагин не нужен, если воспользовались Really Simple SSL.
Если вы загружали и вставляли на сайт изображения, то могли видеть, что wordpress вставляет их по прямой полной ссылке с указанием протокола. То есть все ранее добавленные изображения выводятся по протоколу http. Таким образом часть контента будет работать по http, а часть по https, что называется смешанный контент. Для устранения этой проблемы будем использовать плагин HTTP / HTTPS Remover.
Плагин заменяет подключение файлов на относительный путь, то есть ссылку вида https://delaemsait.info/ он заменит на //delaemsait.info/.
Настроек у плагина нет. Просто устанавливаем, активируем и он работает.
Для вновь создаваемых сайтов это делать не нужно.
Проверки и возможные проблемы
После этого делаем проверки основных страниц на появление замка в браузере, как показано в начале статьи. К основным страницам обычно относятся: главная, страница рубрики и страница отдельной записи, но у вас может быть свой состав страниц.
Если все хорошо, везде будет появляться замок. Если же его нет, нужно открыть страницу в режиме просмотра кода. Для этого кликаем на странице правой кнопкой мышки и в появившемся меню выбираем «просмотр кода страницы». Появится html код страницы. Жмем ctrl + F (поиск), указываем фразу для поиска «http://» и смотрим, что у нас подключается по этому протоколу. Чаще всего бывает, что где-нибудь в хедере и футере есть ручное подключение скрипта. Нужно найти файл, где это сделано (обычно header.php или footer.php) и добавить букву s в протокол. Еще это может быть загруженная картинка, например, логотип. В этом случае достаточно просто перезагрузить картинку по новой (имеется в виду ситуация, когда используемая тема позволяет загрузить логотип и прочие служебные картинки).
Скорее всего, когда вы увидите код, будет понятно, что это за файл и как исправить проблему.
Имейте в виду, что не все ссылки по http приводят к появлению смешанного контента. Например, ссылки на микроразметку к таким проблемам не приводят. Имеют значение только файлы, влияющие на отображение страницы.
Более полную проверку правильности установленного сертификата можно сделать с помощью сервиса https://www.sslshopper.com/ssl-checker.html. Здесь можно увидеть: кем он выпущен, срок истечения и т.д.
Изменения в файле robots.txt
Эти проверки выполняется только при наличии на сайте этого файла (располагается в корневой папке).
- Проверьте файл robots.txt на предмет наличия в нем ссылок с http, например, это может быть ссылка на карту сайта (sitemap). Откорректируйте ее.
- Проверьте наличие директивы Host (используется поисковой системой яндекс). Если она была такой – «Host: delaemsait.info», замените ее на «Host: https://delaemsait.info».
Директива Host больше не используется яндекс, поэтому ее нужно просто удалить.
Карта сайта
Нужно переформировать карту сайта — sitemap.xml, чтобы адреса страниц в ней были с новым протоколом. Нужно зайти в настройки плагина, с помощью которого у вас реализована карта, и нажать соответствующую кнопку для переформирования.
Настройки в вебмастерах
Далее нужно настроить вебмастера поисковых систем. В вебмастере яндекс нужно в разделе Индексирование – Переезд сайта указать опцию «Добавить HTTPS» и нажать Сохранить, как на скриншоте.
В вебмастере google нужно добавить сайт с протоколом https. Дальше Гугл должен сам понять, какой протокол является основным.
В заключение могу сказать, что, не считая времени на ожидание выпуска сертификата эти действия могут занять у вас от силы минут 20, если, конечно, на сайте не используются нестандартные подключения файлов по http, которые придется долго выискивать и заменять протокол.