В этой статье мы разберём, как получить и установить SSL сертификат на сайт WordPress и настроить HTTPS.
Для тех кто не знает, что такое протокол HTTPS можете прочитать в Блоге Яндекса.
Небольшое знакомство — SSL сертификаты имеют разные характеристики:
- DV (Domain Validation) — проверка домены.
- OV (Organization Validation) — подтверждение домена и организации.
- IDN (Internationalized Domain Names) — поддержка национальных доменов.
- EV (Extended Validation) — с «Зелёной адресной строкой» в браузере.
- WC (WildCard) — с поддержкой поддоменов.
- SGC (Server Gated Cryptography) — высокий уровень шифрования.
Для частного лица хватит самого простого «DV».
Стоимость самых дорогих для организаций (например банков и интернет-магазинов, там обязательно необходимо иметь хорошую защиту) может достигать нескольких сотен тысяч рублей.
Преимущества SSL сертификата:
- Все наверное уже слышали про рекомендации Google переводить сайты на защищённый протокол. По материалам Официального блога теперь это фактор ранжирования.
- Так же разработчики Google Chrome объявили, что начиная с 2017 года браузер будет помечать все сайты без SSL, как небезопасные, красным значком «Not secure» в адресной строке.
- Возможность включения HTTP2 — подробнее на Хабре.
Для чего нужен ssl сертификат для сайта
Многие вебмастера пишут, что особого увеличения в выдаче не заметили, но всё же если Гугл что то задумал-то в будущем, мне кажется, это будет обязательным условием и лучше это делать раньше, а не ждать до последнего.
Думаю Яндекс тоже скоро к этому придёт, а может уже и ставит втихаря минусики сайтам без SSL.
Сам переход с HTTP на протокол HTTPS, если всё сделано правильно, не вызывает проблем с индексом поисковиков. А новым сайтам рекомендую сразу ставить SSL, не нужно будет потом возвращаться к этому вопросу.
В общем я считаю, что, как ни крути, а плюсик у поисковиков для защищённых сайтов можно получить, а так же это всё же безопасность, как для вас, так и для ваших посетителей.
Как получить SSL сертификат
Есть два способа получения, как и всегда, это платно и бесплатно 🙂 .
Лично я предпочёл платный вариант, потому что считаю, что бесплатно никак не может быть лучше платного, да и мало ли что измениться в политике компаний по выдаче, возьмут отзовут например или ещё что. А так купил и забыл на целый год (можно и на 2 и 3 года даже покупать, при этом и цена ниже).
SSL сертификат бесплатно:
- Через сервис «CloudFlare» и там в настройках «Crypto» включаем SSL.
- В компании «StartSSL».
- На сайте «Let’s Encrypt», а так же его раздают многие хостинг-провайдёры.
- При покупке домена в Reg.ru.
Если кто знает ещё, пожалуйста пишите в комментариях, добавим в список 🙂 .
Платных вариантов великое множество. Можно купить, как у вашего хостинга, так и у регистратора доменов, а так же куча контор которые специализируются только по продаже SSL сертификатов, ну или напрямую в Центре сертификаций, где цены гораздо выше чем у дилеров. Место покупки значения не имеет.
Как купить SSL сертификат
Лично я в поисках наиболее дешёвого SSL нашёл трёх поставщиков:
- RackStore — от 362 руб. при оплате на 3 года (444 р./год).
- FirstSSL — от 470 р. на 3 г. (560 р./г.).
- GoGetSSL — позиционируют себя, как самая крупная компания по продажам сертификатов в мире с самыми низкими ценами. От 480 руб. при оплате на 3 г. и 600 руб. если только на 1 год.
Так же они обещают продать дешевле если им написать, где более низкая цена. Если кто захочет, то для этого нужно перейти у них в самом подвале сайта есть ссылка «Получить промокод» и заполнить форму. В качестве самой низкой цены можете указать один из вышеприведённых ресурсов.
Важно! Кибер Парк закрылся и там совсем другой сайт, но принцип похож и на других сервисах.
Я покупал в «Кибер Парке». После регистрации в панели управления переходим «Наши услуги» — «Товары» — «Заказать» (нужно будет заполнить свой профиль — ФИО, адрес, тел.).
Далее генерируем CSR код.
У Вас должен быть домен вида — «любое слово@домен сайта». Именно такой почтовый адрес нужно вставлять для генерации CSR. Если E-mail и домен будут отличаться вы не получите сертификат.
Заполняем всё, как показано на картинке, только своими данными.
Далее у вас появится окно с CSR кодом и Private Key. Сохраните оба значения в блокнот (текстовый редактор, например Notepad).
Полученный код (без Private Key, только CSR) вставляете в поле для ключа. В следующем окне нужно выбрать тип сервера (обычно у большинства Apache, но если не уверены можете спросить в техподдержке своего хостера) и E-mail который вы указали ранее.
Всё, нажимаете кнопку «Заказать», оплачиваете и ждёте письма на почту. Сначала вам придёт код подтверждения, его нужно ввести на странице, перейдя по ссылке в письме.
А минут через 10 придёт сам сертификат.
Установка SSL сертификата на сайт WordPress
Для подключения сертификата у вас должен быть подключён выделенный IP если вы на виртуальном хостинге, на VDS он уже есть изначально. Приобрести IP можно непосредственно перед подключением, достаточно сделать запрос в поддержку, можете сразу и написать, что хотите установить сертификат и подключить IP.
Лично у меня на хостинге в панели управления есть настройки, где я просто в специальные поля ввёл сам сертификат и ключ. Если у вас таких полей нет, то обратитесь в техподдержку. Процедура подключения IP и SSL дело нескольких минут и зависит только от оперативности вашего хостинга.
Как настроить редирект с http на https
Теперь нужно настроить правильную работу сайта через протокол HTTPS. И так делаем всё по шагам.
- Заходим в админку сайта и на файловый менеджер на хостинге.
- Делаем резервную копию (бэкап).
- Устанавливаем плагин «Better Search Replace».
С помощью его мы заменим все абсолютные ссылки на относительные, если таковые присутствуют. Вкладка «Инструменты» — «Better Search Replace» в ПУ сайта.
Ещё можете проверить и заменить ссылки в картинках.
Для этого в верхнее поле введитеsrc="http://
а в нижнее
src="//
Так же отмечаем все таблицы и жмём «Run» (выполнить).
Теперь ваш сайт должен работать по двум адресам, как с HTTP, так и с HTTPS — проверьте. Всё плагин можно удалять, он нам больше не понадобится. - Далее на хостинге открываем файл «wp-config.php» и перед надписью «Это всё …» добавляем следующую строчку:
define('FORCE_SSL_ADMIN', true); /* Это всё, дальше не редактируем. Успехов! */
Это небольшая защита админки WordPress.
- Идём в «Настройки» — «Общие» и там где у вас «Адрес WordPress» и «Адрес сайта» прописываем «https://ваш сайт».
Если эти поля у вас не доступны можно поменять через «Базу данных». - В файле «.htaccess» ставим постоянный редирект:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- И через пробел там же добавляем, что сайт можно использовать лишь только через протокол HTTPS:
<IfModule mod_headers.c> # this domain should only be contacted in HTTPS for the next 12 months Header set Strict-Transport-Security "max-age=31536000" env=HTTPS </IfModule>
- Идём в админку сайта и добавляем метатег в секцию «head» там где все ваши метатеги (обычно в файле «header.php»).
<meta name="referrer" content="always">
Он нужен для передачи данных о переходах. Если вы его не поставите то ничего передаваться не будет, соответственно любых отчётах статистики вы ничего не увидите.
Его можно не ставить в 2-х случаях, на мой взгляд, когда у вас просто лендинг и вы используете UTM метки покупая траффик или вы никогда не пользуетесь статистикой.
- Если в «robots.txt» у вас указана директива «Host» и «Sitemap», то меняем http на https.
На этом настройки сайта закончились. Теперь ваш сайт при любом переходе должен показывать зелёный замочек в строке браузера и в админке тоже.
Но это ещё не всё 🙂 , теперь нужно сообщить поисковикам о нашем переходе, т. к. для них сайт с HTTPS и без SSL — это два разных сайта.
Подробнее, как добавить сайт в поисковики.
- Идём в Яндекс.Вебмастер и добавляем наш новый сайт. Далее идёте в «Настройки индексирования» — «Переезд сайта» и ставите галочку «Добавить HTTPS».
- Так же добавляем в Google. Тут ничего больше делать не нужно.
- Можете добавить в Bing по желанию (аналогично Гугл).
- Mail не работал во время написания этой статьи.
С недавних пор (02 июня 2016) и Mail заработал. Сначала добавляете без HTTPS, а потом в настройках указываете какой протокол использовать.
Дополнительно:
- Ну и не забудьте во всех поисковиках отправить Sitemap.
- Важный момент — после перехода возможно, что в некоторых старых браузерах и на старых Windows (например XP) сайт будет не отображаться.
- Ещё если у вас стоит реклама с использованием ресурсов с сайта без SSL, то на такой странице у вас вместо «Зелёного замочка» будет «Жёлтый треугольник» с сообщением — что ваше соединение не защищено.
Поэтому сотрудничайте только с рекламодателями которые осуществляют свою передачу через HTTPS или как вариант некоторые ресурсы можно загружать к себе (например скрипт баннера).
На этом всё, отслеживайте изменения позиций в поисковиках, а особенно в Google.
Если что то пошло не так после изменений
Проблемы с переадресацией.
Для открытия сайта с HTTPS используется постоянный редирект 301 — это серверная настройка вашего хостинга. На каждом хостинге соответственно своя настройка сервера поэтому мой пример может и не работать у кого-то.
Варианты исправлений:
- Пишите в техподдержку с просьбой настроить 301 редирект для HTTPS.
- Ищите администратора по серверам на бирже фриланса.
- Пробуете другие редиректы:
RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] RewriteEngine On RewriteCond %{HTTPS} =on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] RewriteEngine On RewriteCond %{ENV:HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Так же пробуйте и другие в интернете.
Если слетели плагины, стили или другое.
Нажимаете «Ctrl+U» и смотрите, какие ссылки в коде «http» без «S».
Находите эти строки в файлах и переписываете их ручками.