Перевел данный WordPress сайт с протокола http на https. Делюсь своим опытом и привожу список действий, которые выполнялись в процессе перехода на https. Также стоит ознакомиться с примечаниями. Все необходимые ссылки указаны в конце статьи.
- Об SSL-сертификате. В данном случае использовался бесплатный SSL-сертификат от CloudFlare. При использовании других сертификатов действия будут отличаться.
- Регистрируемся на сервисе CloudFlare (CF)
- Добавляем свой домен в CF
- Получаем от CF новые NS-записи для домена
- Заходим в панель регистратора и меняем старые NS-записи на полученные от CloudFlare (потребуется некоторое время, чтобы изменения начали действовать)
- Убедиться, что у домена активный статус (зеленый цвет)
- На вкладке Crypto выбираем тип сертификата — Flexible, в случае если сайт не использовал своих сертификатов
- Происходит инициализация получения сертификата (authorizing certificate). В одном случае получил сертификат через час, в другом — пришлось ложиться спать и уже получить сертификат на следующий день. На вкладке Crypto должен появиться значок active certificate
- До изменения на вкладке Page Rules сайт будет доступен по обоим протоколам. И по http, и по https
- Переходим на свой WordPress сайт через https протокол, скорее всего не все будет в порядке
- Делаем бекап!
- Устанавливаем плагин cloudflare-flexible-ssl (альтернатива — плагин cloudflare). Переходим на сайт, проверяем, должно быть получше
- В базе данных WordPress остается куча ссылок с http, нужно теперь поменять их все на https. Для этого устанавливаем плагин Better Search Replace
- Производим замены
http://example.com
наhttps://example.com
(замену в таблице wp_options я оставил напоследок, см п.18) а также для картинок, которые вставлялись со сторонних сайтов сsrc="http://
наsrc="//
- Можно воспользоваться поиском через PhpMyAdmin, чтобы убедиться, что все необходимые замены сделаны. Периодически тестируем сайт и смотрим, где еще остаются http протоколы
- Многое зависит от того какие плагины используются на WordPress сайте, где-то надо почистить кеш, где-то изменить настройки, какие-то возможно перестанут работать как нужно
- После всех доработок можно делать переадресацию с http на https. заходим в CF на вкладку Page Rules и прописываем правило
http://*example.com*
и выставляем флаг Always use https. Сохраняем. Через некоторое время действия вступят в силу - В админке WordPress (настройки-общие) меняем адрес сайта на новый (https вместо http). Актуально, если в п.14 была выборочная замена. Это я оставил напоследок, убедившись, что все работает.
- Проверяем работу сайта и наличие зеленого замочка на всех страницах сайтах. Если замочек не зеленый, скорее всего есть ошибка blocked mixed content — значит на этой странице что-то подгружается по http. Исправляем обнаруженные проблемы
- Плагин cloudflare-flexible-ssl остается постоянно активированным, плагин Better Search Replace можно удалить
- Сообщаем поисковикам, что адрес сайта изменился. Google — в Search Console добавляем новый сайт с https, так как по старому адресу будет 301 редирект, то все остальное гугл сделает сам. Yandex — в яндекс вебмастер (только в новой версии) в разделе «Настройка индексирования — Переезд сайта» ставим галочку «добавить HTTPS». Сохраняем
- Постепенно изучаем возможности CloudFlare, настраиваем кеширование, блокировки и прочее. Это уже отдельная тема для разговора
- Все вышеописанное проводится на свой страх и риск! Я лишь описал свой опыт и делюсь им с вами.
Примечания:
- Способ работает по идее на любых хостингах, так как от CF до вашего хостера идет уже http-запрос
- Выделенный IP-адрес не требуется
- Новые сайты лучше сразу делать на HTTPS, меньше головной боли с переходом, более лояльное отношение поисковых систем
- Надо понимать, что кроме бесплатного SSL-сертификата вы получаете фильтрацию трафика и прочие примочки от CF. Возможно кому-то нужен только сертификат (см. Letsencrypt)
- Реальный IP посетителей сайта подменяется на IP-адреса из сети CloudFlare, так как CF действует подобно обратному прокси (reverse proxy). Например IP сети CF будет теперь виден в комментариях, чтобы не подумали, что CF вас спамит. Требуются дополнительные плагины, чтобы видеть реальный IP
- Некоторые старые браузеры не смогут зайти на сайт. Нужна поддержка SNI (Server Name Indication)
- Набирает оборота проект Let’s Encrypt — это сервис бесплатных SSL-сертификатов, без лишних услуг, в отличии от CF. Но этот вариант подходит уже не для всех хостингов, минимум VDS/VPS или спрашивать о поддержке данного сертификата у хостера. Во многих случаях вариант с Letsencrypt будет предпочтительнее.
- CloudFlare рекомендует WordPress пользователям отключать производительность в админке сайта. И до отключения проблем замечено не было, но можно добавить правило на вкладке Page Rules для *mydomain.com/wp-admin* — Disable Performance
Ссылки:
- CloudFlare — сервис, который позволяет сделать Ваш сайт быстрее, за счет организации кеширования и защищённей, за счет фильтрации запросов, похожих на атаки, выдает бесплатный SSL-сертификат
- www.whatsmydns.net — проверка DNS записей домена с разных локаций
- SSL Server Test — тест проверки качества работы вашего SSL-сертификата. Обычно оценка ‘A’ для сертификатов от CloudFlare, и даже ‘A+’ после включения поддержки HTTP Strict Transport Security (HSTS)
- How to Validate a Let’s Encrypt Certificate on a Site Already Active on CloudFlare — о подключении своего сертификата на стороне сервера от Letsencrypt в дополнение к работающему от CloudFlare
- Moving to HTTPS on WordPress — Chris Coyier, основатель css-tricks рассказывает как он переводил свой WordPress сайт с http на https, он использовал платный сертификат и не использовал CloudFlare
- How do I fix the infinite redirect loop error after enabling Flexible SSL with WordPress? — как избежать вечного цикла, после подключения SSL, статья от поддержки CloudFlare.
- CloudFlare Flexible SSL — WordPress плагин, помогающий произвести интеграцию с CloudFlare
- Better Search Replace — WordPress плагин для поиска и замены текста в базе данных WordPress
- Переход на HTTPS. Особенности и решение проблем — Хорошее видео с вебинара о Переходе на HTTPS от Сергея Кокшарова, поможет убедиться в необходимости перехода на https.
Статья взята из открытых источников: https://web2033.com/wordpress-http-https-cloudflare/