WordPress https


Что такое HTTPS

HTTPS это защищенный протокол для обмена данными между вашим сайтом и его посетителями. Он позволяет шифровать весь трафик между вашим веб-сервером и браузером вашего клиента. Это предотвращает возможность злоумышленникам и интернет-провайдерам подменивать или просматривать такие данные, как пароли, номера кредитных карт, адреса электронной почты.

Для многих веб-сайтов протокол HTTPS уже давно стал стандартом (включая сайты WordPress.org и WordPress.com), а для интернет-магазинов, платежных систем, систем онлайн-банкинга и других ресурсов связанных с финансами и обработкой личных данных, HTTPS стал неотъемлемой и в некоторых случаях обязательной частью.

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

Следует также отметить, что HTTPS (поверх SSL/TLS) работает немного медленнее, чем обычный HTTP протокол, поскольку серверу и клиенту приходится тратить некоторое время на установление защищенного соединения и шифрование данных, но в большинстве случаев разница совсем не заметна.

SSL сертификаты


Для настройки HTTPS на вашем сайте, вам сперва потребуется приобрести SSL сертификат. Мы рекомендуем рассматривать только крупных и проверенных поставщиков SSL сертификатов, например Comodo, Thawte, VeriSign, GeoTrust и GoDaddy. Чаще всего сертификаты от этих поставщиков можно приобрести у вашего хостинг-провайдера или регистратора доменных имен.

Типы сертификатов бывают разными, например с возможностью использовать на одном домене или на нескольких, с возможностью использования на поддоменах, с различными типами шифрования данных и прочее. Цены на сертификаты в среднем начинаются от $9 в год (за самые простые сертификаты) и доходят до $400 в год и выше.

Процесс приобретения зависит от типа сертификата и поставщика. Мы рассмотрим пример с сертификатом PositiveSSL от Comodo, который можно приобрести за $9 в год у регистратора NameCheap. Такой сертификат подтверждает владение доменом и выпускается в течение нескольких часов. Некоторые более дорогие сертификаты требуют наличие юридического лица и оформление соответствующих юридических документов.

Создание и подписание SSL сертификата

Перед тем как подписать сертификат у поставщика, вам необходимо его создать. Сделать это можно с помощью утилиты openssl


, которая по умолчанию присутствует в OS X и в большинстве Linux дистрибутивах. Если вы используете Windows и у вас нет SSH доступа к любому Linux серверу, то вы можете рассмотреть OpenSSL для Windows или Cygwin.

Для создания нового SSL сертификата и запрос на его подпись, воспользуйтесь следующей командой:

openssl req -nodes -newkey rsa:2048 -keyout wpmag.ru.key -out wpmag.ru.csr  

После запуска, OpenSSL вас попросит заполнить некоторые данные о новом сертификате. При запросе Common Name (FDQN) введите ваш домен, без http:// и без www (даже если домен с www является для вас основным). После заполнения всех остальных данных у вас появится два новых файла. Для примеров мы будем использовать «wpmag.ru»:

  • wpmag.ru.key — приватный ключ к вашему новому сертификату
  • wpmag.ru.csr — запрос на подписание нового сертификата

Приватный ключ необходимо всегда хранить в тайне. Ни в коем случае не выкладывайте его в общий доступ, не пересылайте по электронной почте и не теряйте его. Файл с расширением .csr необходимо отправить на подпись поставщику SSL сертификатов.

В случае с PositiveSSL приобретенного через NameCheap перейдите в раздел SSL Certificates в панели управления и нажмите «Activate Now» рядом с вашим новым сертификатом. Обращаем ваше внимание, что у NameCheap вы можете подписать сертификат для вашего домена в зоне .ru, не зависимо от того, где вы приобрели сам домен.

На следующей странице необходимо выбрать тип используемого веб-сервера и вставить содержимое вашего файла .csr


в текстовое поле:

После проверки запроса NameCheap предложит пройти процесс верификации вашего домена. Самым простым способом является верификация по электронной почте в рамках вашего домена, например admin@yourdomain.org.

После верификации домена и заполнения дополнительных данных на NameCheap, ваш сертификат отправится на подпись в Comodo и спустя несколько часов, подписанный сертификат придет вам на указанный электронный адрес. Как правило это zip-архив, содержащий несколько .crt файлов.

Для работы с веб-серверами nginx или Apache эти файлы необходимо «склеить» в один .crt файл в определенном порядке. Названия файлов в вашем случае могут отличаться, но главное, чтобы ваш сертификат (в наших примерах это wpmag.ru.crt) шел первым, а сертификат с «Root» в названии — последним.

  • wpmag.ru.crt
  • COMODORSADomainValidationSecureServerCA.crt
  • COMODORSAAddTrustCA.crt
  • AddTrustExternalCARoot.crt

Сделать это можно в любом текстовом редакторе или с помощью утилиты cat на OS X и в Linux-подобных системах:

cat wpmag.ru.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > wpmag.ru-bundle.crt  

Таким образом ваш SSL сертификат (вместе с другими) будет находится в новом файле wpmag.ru-bundle.crt, а ключ к сертификату — wpmag.ru.key, который вы сгенерировали ранее. Эти два файла потребуются для настройки HTTPS на вашем сервере.

Настройка SSL сертификата на сервере


Многие хостинг-провайдеры позволяют установить новый SSL сертификат через панель управления аккаунтом. Если эта возможность доступна у вашего провайдера, рекомендуем ею воспользоваться. Если же вы администрируете ваш сервер самостоятельно, то придется вручную подключить новый сертификат к вашему веб-серверу.

Подключение SSL сертификата в nginx

В конфигурации веб-сервера nginx для вашего домена необходимо включить поддержку SSL (порт 443) и указать путь к файлам вашего сертификата:

server {   listen 80;   listen 443 ssl;   server_name wpmag.ru;   ssl_certificate /path/to/wpmag.ru-bundle.crt;   ssl_certificate_key /path/to/wpmag.ru.key;   ...  }  

Убедитесь в том, что у пользователя nginx (или www-data) есть права на чтение файлов сертификата. Напоминаем, что файл .key является секретным ключом, и располагать его в общедоступном месте (например в директории htdocs, www или public_html) не следует.

После изменения файла конфигурации, перезагрузите сервис nginx.

Подключение SSL сертификата в Apache

Для работы с WordPress мы всегда рекомендуем веб-сервер nginx, но если по какой-либо причине вы все еще используете Apache, то подключить SSL сертификат можно следующими директивами внутри раздела VirtualHost


или в общем разделе, в зависимости от вашей конфигурации:

SSLCertificateFile /path/to/wpmag.ru-bundle.crt  SSLCertificateKeyFile /path/to/wpmag.ru.key  

Если вы используете директиву VirtualHost, убедитесь в том, что она распространяется на 443-й порт, а не только на 80-й. После внесения изменений в конфигурацию, перезапустите сервис Apache.

Настройка HTTPS в WordPress

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

Изменить основной протокол сайта с HTTP на HTTPS можно в разделе Параметры → Общие в панели администрирования WordPress.

Эти же настройки можно задать в конфигурационном файле wp-config.php с помощью констант WP_HOME и WP_SITEURL. Это может быть полезно, если вы совершили ошибку при написании домена, и сайт вдруг стал недоступным.

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

Замена http на https в статьях и страницах WordPress

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

Если вы используете WP-CLI, то быстро выполнить поиск с заменой можно командой search-replace


:

wp search-replace 'http://wpmag.ru' 'https://wpmag.ru'  

Второй альтернативой является PHP-скрипт Search Replace DB, который также выполняет поиск с заменой, но предоставляет при этом графический интерфейс.

Использовать поиск с заменой напрямую в базе данных MySQL (в том числе и на файлах экспорта) мы не рекомендуем, поскольку некоторые данные WordPress хранит в сериализованных массивах, и подобные данные портятся при смене длинны строк (https длиннее чем http).

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

Редирект с http на https

Последним шагом в настройке HTTPS является закрытие вашего HTTP сайта и перенаправление всего трафика на новый протокол с шифрованием. Сделать это надежнее всего на уровне веб-сервера.

В nginx необходимо разбить директиву server на два блока. Первый будет слушать 80-й порт и перенаправлять трафик на HTTPS, а второй (основной) блок будет выполнять запросы по 443 порту (не забудьте убрать 80-й из основного блока).

server {   listen 80;   server_name wpmag.ru;   rewrite ^(.*) https://$host$1 permanent;  }    server {   listen 443 ssl;   server_name wpmag.ru;   ...  }  

В Apache внутри директивы VirtualHost


, в общем разделе или в подключаемом файле .htaccess можно добавить следующее условие для редиректа на HTTPS:

RewriteEngine On  RewriteCond %{HTTPS} off  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}  

После внесения изменений в конфигурацию, не забудьте перезагрузить веб-сервер.

Проверка правильности настройки HTTPS

Самой частой проблемой при настройки HTTPS в WordPress являются ссылки и ресурсы, загружаемые по протоколу HTTP. Например, если вы вставили изображение или JavaScript файл по протоколу HTTP, то по умолчанию он не будет исполняться. В таком случае надежнее всего загрузить данный файл на собственный сайт, и встроить его используя протокол HTTPS или с помощью протоколо-независимого формата //example.org/path/to/file.js.

В адресной строке браузеров Google Chrome и Firefox появятся специальные значки, если целостность HTTPS соединения нарушается какой-либо ссылкой на HTTP файл, так что при работе с вашим сайтом обращайте внимание на зеленый замок слева от адреса сайта. Этот замок должен всегда оставаться зеленым.

Также для проверки правильности настройки протокола HTTPS на вашем сервере, рекомендуем попробовать утилиту SSL Server Test от Qualys. Вбив адрес вашего сайта вы сможете получить подробный отчет о том, как настроен HTTPS на вашем сайте: валидность вашего сертификата, правильность редиректа с http на https, доступные методы шифрования и многое другое.

Заключение


Если вы содержите веб-сайт, который позволяет посетителям ввести адрес электронной почты (например оставив комментарий), номер телефона (заполнив форму обратной связи), и особенно если вы работаете с фактическими адресами, номерами кредитных карт и прочей конфиденциальной информацией, мы рекомендуем вам немедленно перейти на защищенный протокол HTTPS.

Учтите, что форма для входа в WordPress также является открытой для мошенников, если она не защищена протоколом HTTPS, особенно если вы часто посещаете свою «админку» из интернет-кафе, ресторанов и прочих публичных мест. То же самое касается работу с вашим сайтом на WordPress через мобильное приложение.

Если у вас остались вопросы по настройке HTTPS в WordPress, оставьте комментарий и мы обязательно вам ответим.

wpmag.ru

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

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

HTTPS и HTTP


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

Зачем переходить на 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.

Wordpress https

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

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

Wordpress https

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

Wordpress https

Wordpress https

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

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

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

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

Wordpress https

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

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

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

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

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

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

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

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

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

Wordpress https

Способ 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 плагины
Wordpress https
Перевод сайта WordPress на HTTPS плагин HTTP-HTTPS

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

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

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

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

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

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

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

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

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

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

Wordpress https

Wordpress https

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

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

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

Выводы

Wordpress https

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

©www.wordpress-abc.ru

www.wordpress-abc.ru

How HTTPS Works – A Short Definition

Before diving into how to move your website to HTTPS, let’s first define what we are talking about. Even if you don’t know exactly what HTTPS and SSL are, you have probably seen them at work before.

HTTPS and SSL are Visible on the Site URLs

These days the URL of most big sites (and increasingly also the smaller ones) start with https:// instead of the familiar http://. In fact, if you look into your browser bar while on this very website, you will see exactly that.

website setup move your website to https example

Next to it, you will also notice the padlock symbol. This is how modern browsers show that you are on a site that uses SSL encryption. In some cases, they even include the name of the company. Both are signs that you are on a site that takes the privacy of their visitors seriously.

What Does That Really Mean?

HTTPS stands for Hypertext Transport Protocol Secure. Its cousin, HTTP (which stands for the same minus the Secure at the end), is the communication protocol usually used for facilitating web traffic.

What’s the difference?

The secure version uses an SSL (Secure Socket Layer) certificate to establish a connection between browser and server. That means any information that is exchanged gets encrypted.

move your website to https how encrpytion works
By Munkhzaya Ganbold (Own work) [CC BY-SA 4.0], via Wikimedia Commons

Encryption is the process of replacing plain text information (like usernames and passwords) with random numbers and letters. That way, they are no longer readable by humans and harder to make sense of if someone intercepts them.

Sounds useful, right? But do you really need it on your site? Let’s go over some good reasons to add HTTPS to your WordPress website.

A quick note: Technically SSL is not the correct name anymore. In the late 90s, the name changed to TLS (Transport Layer Security) and SSL was actually retired. However, its name stuck around.

Why Should You Move Your Website to HTTPS?

Currently, only 0.1% of all websites use SSL. Consequently, it doesn’t seem like the technology is essential to run a successful web presence. However, there are still convincing reasons to become part of the minority.

1. Your Site Handles Sensitive Information

First of all, if you have an online shop that handles credit card information or similarly sensitive data, moving your site to HTTPS is an absolute must. Clients want to trust your site and they should be able to. It is your responsibility to make that happen.

For example, if someone uses a public wifi spot to access an unsecured site, others are able to steal their payment details. If they use that information to steal from your client, how likely do you think that person is to come back to your site? Not very.

Without HTTPS it is also possible to alter the data your visitors receive. That way, a third party could add ads, malware or other things you definitely don’t want others to see on your web presence.

In fact, a while ago AT&T was caught doing that (add ads, not malware). However, you can be sure that visitors won’t really care who did the deed. All they will remember that it happened on your site.

However, even if you “only” deal with normal login information, it’s not a bad idea to offer an extra layer of security and keep it safe. Your users will certainly appreciate it.

2. HTTPS is a Sign of Trustworthiness and Authenticity

Speaking of visitors: because of the general push for HTTPS adaptation on the web, encryption has become something that consumers increasingly expect. In fact, by now 28.9% look at the green address bar in their browser a number that will likely increase with time.

study on consumer expectations with https

Why do they care? Because the little padlock doesn’t only mean that their traffic is protected but also that the website is authentic and who it claims to be, not some fake. After all, the same study shows that 77% of end users are concerned about their data being intercepted and misused.

So, if they have the choice between your site without HTTPS and a competitor who has implemented it, chances are good they will decide against you. Especially since major browsers (Chrome, Firefox) now mark sites, which have forms on pages without HTTPS, as insecure.

In the future, they might generally warn you of any site that doesn’t have encryption in place. And you really don’t want to be among those.

3. Benefits for SEO

Not only do consumers expect you to make the move over to HTTPS, search engines do, too. Google officially announced that having an SSL certificate in place is now a ranking factor. What’s more – while weak at the moment, the importance of HTTPS will increase over time.

In addition to that, referral data from HTTPS to HTTP is blocked in Google Analytics. So, if you have a website running on the old protocol and get a lot of referral from sites running on HTTPS, you won’t see it correctly in your web analytics. That way, you might not be aware of platforms that send you lots of traffic and lose out on amplifying your marketing channels.

4. Faster Loading Times

Staying on the topic of SEO, HTTPS is also significantly faster. Don’t believe me? Try it here (use a private window to prevent image caching). When I ran the test, HTTPS was a whopping 83% faster!

http vs https speed comparison

Not bad, right? Especially since page loading speed is also a ranking factor.

Not only that but visitors care about it. In fact, a large chunk will leave your site if it doesn’t load within three seconds. For that and other reasons, check out our guide on how to speed up WordPress.

 

7 Steps to Move Your WordPress Site to HTTPS

Alright, now we are getting to the meat and potatoes of this article: how to move your site from HTTP to HTTPS. We will take this step by step to make sure you can follow along without a problem. After all – we care about your site’s security as well!

1. Back Up Your Website

Whenever making major changes to your site, you should always back it up first. That way, in case something goes wrong (not that we are expecting it) you can go back to the working version.

As this case is no different, backing up your website is your first task. Even better – if you have the possibility, run through the process below on a test server first, not only your live site.

2. Implement Your SSL Certificate

The first thing we will do is get ourselves an SSL certificate. How easy or complicated this process is, depends largely on your host.

For example, while researching this guide, I found out that my current host does not support Let’s Encrypt and doesn’t plan on doing so. Needless to say, I am in the process of switching. Hopefully, yours is a bit more forward thinking, such as the companies on this list.

The optimal scenario is that your host offers an option to move your site to HTTPS right in the management dashboard. For example, to switch your site to Let’s Encrypt in cPanel, you can follow these instructions. Find the same steps for Plesk here.

For everyone else, there is Certbot. If you have administrative shell access on your server, you can simply select the type of web server and operating system you are using. After that, the site will tell you how to implement Let’s Encrypt on your server.

move your website to https using certbot

If you get your SSL certificate from a different source, follow the instructions of your hosting provider to implement the switch (that’s also the reason why turning to them in the first place is not a bad idea).

Once that is done, you need to start making the necessary changes to your WordPress website. This is what we will talk about next. If you feel that the below is too technical, you can also give the plugin Really Simple SSL a try. It takes care of most of the heavy lifting described next.

3. Add HTTPS to the WordPress Admin Area

The first place where you will get to enjoy the new safe connection is the WordPress dashboard. By securing the back end first, you make sure that whenever a user logs in, their information is exchanged securely.

To do so, open wp-config.php in your WordPress root folder and add the following line somewhere before where it says That’s all, stop editing!.

define('FORCE_SSL_ADMIN', true);

Once you have updated the file, it’s time to test if it works. For that, try to access your login page with HTTPS in the URL, for example via https://yoursite.com/wp-admin. If everything worked correctly, you should have a secure connection now. Then continue.

4. Update the Site Address

After moving the WordPress backend over to HTTPS, it’s time to do the same for the remainder of your site. You can do that by updating your site address under Settings > General.

move your website to https change WordPress settings

Add https:// to the beginning of both the WordPress address and site address. Then update your settings by saving. Be aware that you might need to log in again afterward.

5. Change Links in Your Content and Templates

Now it’s time to update any links in your content and database that include the old HTTP protocol. A plugin like Velvet Blues or the Search and Replace script can help with that. However, be careful! If handled incorrectly, they can also screw up your site. Good thing you made that backup earlier, right?

If you have links to external resources and assets in your theme templates and function files with absolute HTTP links, it’s important to correct these, too. Things to consider:

  • Images, videos, audio hosted on your site
  • Web fonts
  • iframes
  • JavaScript and CSS files or assets referenced within those files
  • Internal links

If possible, change your links to // instead of https://. They will then create relative links themselves!

6. Implement 301 Redirects in .htaccess

The next step in moving your site to HTTPS is setting up a redirect that sends visitors automatically over to the secure version. For that, we will use .htaccess. This is the name of an important system file on your server (usually in the WordPress root directory).

It usually contains settings for using pretty permalinks, so your installation probably already has one. To find it, make sure to allow your FTP client to show hidden files because .htaccess is invisible by default. If you don’t have one, just create a plain text file, rename it to .htaccess and upload it to the WordPress root directory.

After that, add the following lines to it:

<IfModule mod_rewrite.c>  RewriteEngine On  RewriteCond %{HTTPS} off  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]  </IfModule>

That’s it. From now on, visitors (including Google bots) should automatically land on the HTTPS version of your WordPress site. Make sure no page is available in both versions. This can lead to problems with duplicate content. Not good for SEO.

7. Test and Go Live

Ok, now that we are done with the main steps, it’s time to test if everything works correctly. For that, head on over to SSL Test. Insert your domain name and click Submit. This will give you an overall score of how well you implemented SSL on your site and details to find out potential issues in order to fix them.

move your website to https ssl test results

After that, crawl your site with a tool like SSL Check. That way, you can catch any leftover links that you forgot. If everything fine, it’s time to go live. Well done! Now you only need update some peripheries.

8. Update Your Site Environment

If that worked fine, now it’s time to do the last few steps to complete the transfer to HTTPS:

  • Update your sitemap — Ideally, your SEO plugin does this automatically. However, it doesn’t always work that way. With Yoast SEO you might have to switch off the plugin once for it to update the sitemap. Don’t forget to include it in your robots.txt file and update all other hardcoded links you might have there.
  • Add site to your webmaster tools — Go to every webmaster tool you are using and add the HTTPS version of your site as a new property. While you are there, upload the new sitemap. You might also consider doing a fetch and crawl and submit any disavow files that are already active for the old version of your site.
  • Update your CDN — If you are using a content delivery network (one of the ways to speed up your site), you also need to switch it to SSL. Many of them have that feature built in and your CDN should have documentation on this. Otherwise, ask their support to help you.
  • Make the switch in your analytics — If your analytics need a default URL, make sure to upgrade it with the new prefix. For Google Analytics, you find the option under Admin > Property Settings > Default URL. Also, note down when you made the switch to HTTPS to understand traffic changes.
  • Preserve social share counts — If you show social share counters on your site, you might have to make some changes in order to keep them up to date. Check this guide for details. Don’t forget to update the links to your site in your social profiles! And do the same in your email templates.

That’s it! You have successfully managed to move your website over to HTTPS. Congratulations, that was no small feat. If everything went fine, all that’s left is patting yourself on the back and celebrating. Should you run into problems, we have some troubleshooting tips up next.

HTTPS Troubleshooting Tips

Unfortunately, moving your site to HTTPS is not all sunshine and rainbows. Some stuff might come up that needs dealing with.

Mixed Content Warnings

The most common problems that arise after you move your website to HTTPS are mixed content warnings. This happens when the browser finds non-secure links on an otherwise secure page. This is usually a matter of updating links to jquery libraries, custom fonts or similar to their HTTPS version.

You should usually take care of this while scanning your site before publishing it. However, if you find a warning like this, make sure to check what is causing it.

Aside from the aforementioned tools, you can also use Why No Padlock? for single pages. Then, correct whatever is the issue.

Decreased Search Rankings

Making the switch from HTTP to HTTPS can influence your rankings negatively. What?! Didn’t I say earlier that this is good for SEO? Why would your rankings go down then?

Before you go back and kick HTTPS to the curb, hear me out first. If your SEO is affected negatively, this is usually only temporary.

You see, Google treats https:// and http:// URLs as two different entities. Even if you set up 301 redirects (as we have done above), those only transfer 90-99% of the link juice. That’s why your rankings might go down in the beginning.

However, after the initial dip, they should actually increase over time. As mentioned, Google considers the use of SSL a positive ranking factor, so if you move your website to HTTPS, you actually make it more attractive in their eyes. This will benefit you in the long run.

In a Nutshell…

Keeping your site and its traffic secure is one of the most important issues for any website owner. Knowing they can trust you with their sensitive data matters to consumers. In times of increased data theft, that is a huge asset and HTTPS and SSL are the tools to achieve it.

Besides signaling trustworthiness to consumers, when you move your website to HTTPS it also lets you benefit from increased speed and better SEO. Plus, with a free service like Let’s Encrypt, the cost is no longer a deterrent.

Above, you have learned how to obtain a free SSL certificate and implement it on your WordPress website. We have gone through the necessary steps to move your entire site over to HTTP’s secure cousin and also talked about other considerations to take into account when making the switch.

If you have followed along, you are now able to add HTTPS and SSL to your WordPress website. Know that this is a great investment for the future and where the web is moving. Your visitors, users, and your site will thank you.

websitesetup.org


Плагин — Easy HTTPS (SSL) Redirection позволит вам создать автоматический редирект, перенаправление с адреса http на https. Данный плагин будет полезен тем кто установил для своего сайта SSL сертификат. Если вы установили SSL сертификат на сайт, который длительное время был без сертификата SSL, то есть адрес сайта начинался с http, то значит вам нужно будет сделать временное перенаправление на адрес https, чтобы перенаправить все старые URL адреса в поисковой выдаче на новые с https. Сделать перенаправление вам поможет простой плагин, который вы сможете установить прямо из админ-панели wordpress. Перейдите по вкладке: Плагины — Добавить новый, введите название плагина в форму поиска, нажмите Enter, установите и активируйте плагин.

 

19-01-2016 19-31-12_mini

 

Чтобы настроить плагин, перейдите по вкладке: Настройки — HTTPS Redirection. В самом верху страницы, будет отображаться уведомление: «Если после включения перенаправления у вас возникли проблемы, не открывается сайт и т.д., то откройте файл htaccess и удалите из него код, который начинается со строчки — # BEGIN HTTPS Redirection Plugin, а заканчивается строчкой — # END HTTPS Redirection Plugin, после чего сохраните файл и обновите сайт. Файл htaccess находится в корневой директории сайта, где находятся все файлы сайта.

 

19-01-2016 20-10-04_mini

 

Для включения автоматического перенаправления поставьте галочку в поле — Автоматическое перенаправление на HTTPS.

 

— Force resources to use HTTPS URL, поставьте здесь галочку, чтобы создать автоматическое перенаправление для статических ресурсов, таких как изображения.

 

После того как вы поставите галочки, нажмите на кнопку — Сохранить изменения, после чего перенаправление включится автоматически. Чтобы проверить работоспособность плагина, найдите в поиске Google или Yandex, любую вашу старую запись, которая ещё находится по адресу http, попробуйте открыть запись, если вы попадёте на страницу записи с новым адресом https, значит всё работает.

 

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

 






info-effect.ru


info-effect.ru

Раньше я говорил о том, что не буду устанавливать SSL-сертификат на свой блог, потому, что не хочу тратить деньги на покупку защищенного сертификата на не коммерческом сайте. Но многим известно, что есть бесплатные сертификаты, которые можно и нужно устанавливать на некоммерческие сайты. Об одном из таких я уже писал — это Wosign. Но себе, я установил другой — StartSSL (о нем я возможно напишу в следующей статье), хотя информации по данному сертификату и так предостаточно в сети.

И так, с какими проблемами я столкнулся при переводе своего WordPress блога на SSL.

1. После правильной установки сертификата, нужно зайти в админку своего блога и в меню: Настройки-Общие прописать доступы к блогу с https.

Перенос wordpress-блога на https

2. Нужно все внутренние ссылки в записях прописать, через https. Если вы делали перелинковку сайта абсолютными ссылками например так: https://texnoera.com/internet/webmasteram/perehod-na-https.html, то вам нужно либо эти ссылки сделать относительными, чтобы получилось так: /internet/webmasteram/perehod-na-https.html, либо вручную к http, добавить s, чтобы получилось https. Т. е. везде, где возможно на блоге, ссылки должны идти, через https.

Если статей на сайте очень много, то это все можно сделать автоматически. Если вы не хотите переходить на относительные ссылки, то вам просто нужно сделать следующий SQL запрос у вашей базе данных:

UPDATE wp_posts SET post_content = REPLACE (post_content, "https://texnoera.com", "https://texnoera.com");

Таким образом, внутренние ссылки у своих постах, вы автоматически перепишете под https.

Или же можно сделать сразу ссылки относительными (что я и сделал):

UPDATE wp_posts SET post_content = REPLACE (post_content, "https://texnoera.com/", "/");

Относительные адреса лучше по той причине, что они создают меньшую нагрузку на сервер.

Если после этих действий, в адресной строке браузера ваш сайт все ещё отображается с незамкнутым, или желтым замочком, то возможно какие-то скрипты подгружаются не через https, а через http. Для этого вам нужно сделать соответствующие правки вручную, или установить плагин WordPress HTTPS. Этот плагин хоть и давно не обновлялся, но свою работу он выполняет на 5+.

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

texnoera.com

Переход на HTTPS – важный процесс для многих веб-сайтов. Почему это необходимо сделать? Причины следующие:

  • Общая безопасность. Если вы переходите на HTTPS, вы гарантируете, что ценные клиентские данные не будут перехвачены в процессе транзакций. Это очень важно для сайтов, которые имеют систему входа и принимают кредитные карты для оплаты.
  • Сайт, каким он должен быть. Я слышал про случаи, когда WiFi-системы в отелях и даже интернет-провайдеры перехватывали HTTP-трафик и нередко вставляли свой собственный рекламный код. Сделать это по HTTPS не получится.
  • SEO. Google говорит, что сайты будут ранжироваться выше.
  • Необходимое условие. Ссылок, к сожалению, не приведу, но мне кажется, что HTTPS требуется для некоторых/всех вещей по SPDY и HTTP/2.

Получаем SSL-сертификат

ssl_secure

Этот шаг является обязательным, поскольку без этого перевести свой сайт на HTTPS не удастся. Сделать это довольно просто, если следовать инструкциям. Купить SSL-сертификат можно, к примеру, в компании ЛидерТелеком, которая предлагает разнообразные сертификаты по доступным ценам.

Как только ваш SSL-сертификат будет корректно установлен, вы сможете посетить свой сайт либо по HTTPS, либо по HTTP, и он будет отлично работать. Хотя по HTTPS могут также встречаться ошибки, но мы посмотрим далее, как их исправить.

Начинаем с панели администратора

В WordPress вам также понадобится вначале перенести панель администратора на HTTPS. Обычно с этим не бывает ошибок (когда я говорю «ошибок», я имею в виду уведомления о смешанном контенте – мы еще дойдем до них).

Чтобы включить HTTPS для панели администратора, необходимо поместить следующую строку в wp-config.php, который хранится в корневой папке вашей сборки WordPress:

define('FORCE_SSL_ADMIN', true);

Обязательно протестируйте работоспособность HTTPS. Перейдите по ссылке https://yoursite.com/wp-admin/ для проверки этого. Иначе вы можете столкнуться с нерабочими URL-адресами. Если у вас возникли какие-либо проблемы, просто удалите эту строку из файла.

Все прекрасно, вы имеете защищенное соединение:

secure-connection

Пытаемся перевести одну страницу фронтэнда на HTTPS

Следующий шаг – перенос фронтэнда на HTTPS. Перевести все сразу на HTTPS будет довольно сложно, поэтому лучше всего начать с одной целевой страницы. К примеру, возьмем страницу входа для The Lodge. На этой странице могут приниматься кредитные карты, поэтому она должна передаваться по HTTPS. Это и стало базовой мотивацией для меня по переходу на HTTPS.

Существует плагин, который позволяет это сделать — WordPress HTTPS (SSL). С помощью данного плагина вы получите специальный чекбокс, который выводится для страниц/записей и помогает шифровать их с помощью SSL.

secure_ssl

Избавляемся от уведомлений о смешанном содержимом

В действительности необходимо постараться обойти следующие уведомления:

mixed-content

Хорошая попытка перейти на HTTPS, но зеленого замочка нет!

Если вы откроете консоль, вы увидите следующее:

console-warnings

В данном случае некоторые изображения были встроены с CodePen с помощью HTTP src. Однако такую проблему могут вызвать и другие элементы: к примеру, HTTP в script, HTTP в link CSS, HTTP в Iframe и т.д. Все то, что приводит к выполнению HTTP-запроса, будет выдавать подобную ошибку.

Вам просто нужно исправить URL. Везде.

Относительные URL (относительно протокола)

Вы знаете, это такие URL-адреса, которые начинаются с двух слэшей. Пример:

<img src="//example.com/image.jpg" alt="image">

Они – ваши друзья. Они будут подгружать ресурсы для того протокола, который задан для страницы. Ссылки, которые являются относительными, тоже будут вполне приемлемы:

<img src="/images/image.jpg" alt="image">

У меня практически везде были подобные ссылки. Мне осталось лишь поправить ссылки в произвольных полях:

custom-fields

Проблема сложнее: изображения в старом контенте

На сайте были тысячи страниц и сотни тысяч изображений. Прямо в контенте. Проблема в том, что эти изображения имеют HTTP-ссылки.

Я не стал полагаться на использование фильтров WordPress для контента. Вместо этого я нанял профессионала, который помог мне справиться с URL. Первое, что мы сделали – это выполнили несколько SQL-запросов для исправления URL в базе данных. По большей части мы просто исправили src изображений, сделав их относительными (относительно протокола).

Мы выполнили бэкап базы данных и протестировали работу сайта локально. Все работало великолепно:

UPDATE wp_posts  SET post_content = ( Replace (post_content, 'src="http://', 'src="//') ) WHERE Instr(post_content, 'jpeg') > 0   OR Instr(post_content, 'jpg') > 0   OR Instr(post_content, 'gif') > 0   OR Instr(post_content, 'png') > 0;

И еще один запрос для отлова изображений с одинарными кавычками:

UPDATE wp_posts  SET post_content = ( Replace (post_content, "src='http://", "src='//") ) WHERE Instr(post_content, 'jpeg') > 0   OR Instr(post_content, 'jpg') > 0   OR Instr(post_content, 'gif') > 0   OR Instr(post_content, 'png') > 0;

Произвольные поля мы поправили аналогичным образом:

UPDATE wp_postmeta  SET meta_value=(REPLACE (meta_value, 'iframe src="http://','iframe src="//'));

Убеждаемся в том, что новые изображения являются относительными (относительно протокола)

Справившись со старым контентом, мы решили убедиться в том, что с новым контентом тоже все будет в порядке. Для этого нам нужно было поправить все вещи, связанные с загрузчиком медиа файлов, чтобы он добавлял изображения с относительными URL (относительно протокола). К счастью, у меня уже была настроена вставка изображений с помощью тегов figure, так что мне пришлось всего лишь их немного откорректировать. Соответствующий код был вынесен в функциональный плагин. Это несколько выходит за рамки статьи, но вы можете самостоятельно разобраться с этим, если хотите:

class CTF_Insert_Figure {   /**  * Initialize the class  */  public function __construct() {  add_filter( 'image_send_to_editor', array( $this, 'insert_figure' ), 10, 9 );  }    /**  * Insert the figure tag to attched images in posts  *  * @since 1.0.0  * @access public  * @return string return custom output for inserted images in posts  */  public function insert_figure($html, $id, $caption, $title, $align, $url) {  // remove protocol  $url = str_replace(array('http://','https://'), '//', $url);  $html5 = "<figure id='post-$id' class='align-$align media-$id'>";  $html5 .= "<img src='$url' alt='$title' />";  if ($caption) {  $html5 .= "<figcaption>$caption</figcaption>";  }  $html5 .= "</figure>";  return $html5;  } } 

Ваш CDN тоже должен быть с SSL

Если у вас включен CDN, вам нужно убедиться в том, что все ресурсы передаются с него через HTTPS. К счастью, многие CDN автоматически это обрабатывают.

Запускаем HTTPS везде на сайте

Делается это в .htaccess в корне сборки WordPress:

# Force HTTPS RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Как только этот код будет помещен в файл, вы сможете отключить плагин и удалить код из wp-config.php, поскольку все это будет излишним.

Также вам понадобится сменить параметры URL в общих настройках, сделав их https://. Таким образом, все ссылки в WordPress будут должным образом сформированы:

general-settings

Продолжаем чистку

Даже после перехода на HTTPS везде на сайте вы можете встретить страницы со смешанным контентом. Вам нужно будет исправлять URL ресурсов для этих страниц.

Удачи вам!

Источник: https://css-tricks.com

oddstyle.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.