С 2017 года Google будет отдавать предпочтение сайтам использующим SSL-сертификаты, которые обеспечивают шифрование трафика между сервером и пользователем, это необходимо для защиты личных данных пользователей, такая защита актуальна для любых сайтов ведущих коммерческую деятельность, блогам вроде бы SSL-сертификат не очень нужен, но с другой стороны если у в вашем блоге открыта возможность комментирования, то авторизация пользователей по HTTP оказывается не очень безопасной и пароль легко может быть перехвачен. Чтобы обезопасить свой блог и его посетителей, не потерять с трудом занятые позиции я решил использовать SSL сертификат, в процессе возникло несколько сложностей о решении которых и будет эта статья.
WordPress и SSL-сертификат
- Для начала нам нужен собственно сам сертификат и ключи, способов его получить достаточно много, есть платные сертификаты, есть бесплатные решать вам, я человек небогатый и остановился на бесплатном сертификате, тем более что мой хостер поддерживает сертификаты Let’s Encrypt SSL, поддержка встроена в Cpanel.
Ничего сложного там нет, выбрать домен, создать сертификат и он будет автоматически привязан к домену; - После этого ваш сайт заработает по протоколу https, некоторые хостеры после установки сертификата автоматически редиректят запросы с http на https, но большинство по-моему этого не делает, поэтому Ваш сайт будет работать и с http и с https, надо настроить редирект запросов с http на https. Вариантов редиректа и способов реализации достаточно много, если не знаете какой использовать лучше обратитесь в техподдержку и там помогут все правильно настроить, у меня заработал вот такой вариант, с сайта хостера, я использую встроенные в WordPress ЧПУ, жирным выделен код который я добавил в файл .htaccess:# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteRule ^index\.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
- Проверяем, если ввести в адресную строку браузера https:// любая страница с вашего сайта, то должна сработать автоматическая переадресация на https:// любая страница вашего сайта. Если это не так проверяйте файл .htaccess на ошибки, пробуйте другой вариант переадресации (чаще всего его можно найти в документации вашего хостера) или используйте переадресацию на php.
- После того как переадресацию настроили и сайт стал всегда открываться по https, может возникнуть еще одна проблема, заветный зеленый замочек в адресной строке не появляется, вместо него в хроме все выглядит вот так:
Проблема в том что часть контента грузится по протоколу http, в данном случае ссылки на картинки были вставлены до перехода на http и поэтому браузер считает ваш сайт не полностью безопасным, дело в том что весь контент загружаемый по http может быть подменен злоумышленником, например он может легко вставить в код сайта форму для ввода паролей и украсть ваши данные. Поэтому нужно исправить все ссылки на картинки и другой контент с http на https. Сделать это тоже можно несколькими способами, скачать дамп базы SQL открыть в текстовом редакторе и заменить все http на https, если ссылок немного — поменять их вручную, открыть PhpMyAdmin и выполнить несколько SQL-запросов на обновление ссылок, но самый быстрый и удобный — использовать плагин Better Search Replace, или аналогичный. Перед использованием плагина обязательно сделайте резервную копию базы данных!
После установки и активации заходим в меню плагина, настройки ставим как на картинке:
Тут все просто:
Искать — строка которую будем заменять (тут пишем http)
Заменить на — чем заменять (https)
Выбор таблиц — таблицы в которых производить поиск и замену, если меняем только в постах то выбираем таблицу wp_posts (еще ссылки могут быть в комментариях, тогда нужно выбрать таблицу wp_comments), несколько таблиц можно выбрать мышкой удерживая CTRL
Установленная галка “Холостой запуск” запрещает внесение изменений сразу, сперва лучше выполнить поиск и посмотреть что получится, если все верно снимаем галку и жмем на Запустить поиск/замену. Если все сделано верно и все ссылки с http заменились на https, то на всех страницах сайта в адресной строке браузера должен появиться зеленый замок:
Он означает что соединение полностью защищено. - Также не забудьте зайти в настройки блога — общие и изменить Адрес WordPress (URL) и Адрес сайта (URL) добавив букву S к http.Если у Вас возникли вопросы, задавайте в комментариях постараюсь помочь.