Wordpress

Настройка https на wordpress: Перевод сайта WordPress на HTTPS: инструкция

04.06.2021

Содержание

Как настроить https на WordPress?

Если вы читайте данную статью, то вы хотите узнать, как правильно подключить протокол HTTPS для сайта на WordPress.

SSL (TLS), HTTPS

SSL (Secure Sockets Layer) — это криптографический протокол, который обеспечивает безопасность и конфиденциальность при обмене информацией между сайтом и устройством пользователя. SSL сертификаты используются для шифрования данных и, как правило, они раньше устанавливались на сайтах, на которых передаются конфиденциальные данные (логины, пароли, данные банковских карт и др.)

Протокол SSL обеспечивает защищённый обмен данных за счёт двух следующих элементов:

  • Аутентификация
  • Шифрование

Впоследствии на основании протокола SSL 3.0 был разработан и принят стандарт RFC, получивший имя TLS.
TLS (англ. Transport Layer Security — Протокол защиты транспортного уровня[1]), как и его предшественник SSL (англ. Secure Sockets Layer — транспорт защищённых сокетов) — криптографические протоколы, обеспечивающие защищённую передачу данных между узлами в сети Интернет
На веб-страницах, использующих HTTPS, неприкосновенность информации обеспечивается с помощью протокола TLS (Transport Layer Security ‒ безопасность на транспортном уровне).

HTTPS (Hypertext Transport Protocol Secure) протокол защищает данные, которые оставляет посетитель на вашем сайте. HTTPS — расширение протокола HTTP для поддержки шифрования в целях повышения безопасности.

Для перевода сайта на HTTPS вам необходимо купить или получить бесплатный криптографический сертификат. Своим клиентам мы помогаем подключить бесплатный Let’s Encrypt сертификат.

Центр сертификации Let’s Encrypt

Let’s Encrypt — центр сертификации, предоставляющий бесплатные криптографические сертификаты X.509 для TLS-шифрования (HTTPS). Процесс выдачи сертификатов полностью автоматизирован.

Наши хостинг партнеры Active.by и Hoster.by предоставляют возможность получать и устанавливать бесплатные сертификаты от Let’s Encrypt. После подключения, сертификат будет продлеваться автоматически.

Настраиваем HTTPS для WordPress, подробная и понятная инструкция

Безопасно ли пользователь пользуется Вашим сайтом? Используете ли Вы HTTPS-шифрования?

Если нет, тогда самое время заняться бозопасностью как сайта так и его пользователей.

CloudFlare + HTTPS + WordPress

HTTPS – это термин, используемый для безопасных HTTP-соединений. HTTPS обеспечивает безопасное соединение для вас и посетителей вашего сайта. Каждому веб-сайту, использующему соединение HTTPS, выдается сертификат SSL (Secure Sockets Layer). Если сертификат сайта не совпадает с тем сертификатом который фактически установлен на сайте, браузер предупредит посетителя.

Современные браузеры также предупреждают пользователя, если веб-сайт все еще использует старое HTTP-соединение.

Три года назад Google сообщал, что HTTPS будет является фактором ранжирования, и сегодня он, по-видимому, уже является этим фактором.

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

В этом уроке я покажу вам, как вы можете сделать это с помощью Cloudflare.

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

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

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

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

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

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

Многие хостинговые компании взимают плату за предоставление SSL-сертификата, хотя хостинговые компании все чаще предлагают его с планами.

Я лично пользуюсь сервисом производительности и безопасности сайта Cloudflare, поскольку он предлагает бесплатный SSL-сертификат. Их бесплатный план также предлагает множество других фантастических бесплатных инструментов, таких как сеть доставки контента (CDN) для повышения производительности, инструменты безопасности и ряд приложений из популярных интернет-сервисов.

Если вы не используете Cloudflare для предоставления соединения SSL, не вносите никаких изменений, предложенных в этом руководстве. Этот урок не для вас.

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

Как установить на WordPress HTTPS соединение с помощью Cloudflare ?

После регистрации на сервисе, добавьте свой сайт в систему . Как это сделать я подробно описыаал здесь:

CloudFlare – Как добавить сайт в сервис на примере добавления сайта с ukraine.com.ua

Получение и инициализация сертификата от CloudFlare

В пункте меню нажимаем Crypto за тем необходимо выбрать вид сертификата — Flexible.

После того как пункт был выбран, начнется инициализация полученного сертификата (authorizing certificate). В случае успеха, увидим вот такую надпись “Active certificate”:

В основном сертификат готов в течении часа, иногда приходится дожидаться следующего дня. Перед тем как приступить к правкам настроек на вкладке “Page Rules” в начале проверяем сайт на доступность по https. Для это вбейте адрес

Если переход осуществился, значит все отлично и двигаемся дальше. Если нет… В общем скорее всего у Вас прошло все хорошо и сайт доступен и по https и по http протоколам.

Установка плагинов в WordPress для реализации поддержки https от CloudFlare

Создаем резервную копию сайта, для этих целей есть замечательный плагин Duplicator.

Ставим cloudflare-flexible-ssl и cloudflare плагины, после чего смотрим как себя ведет сайт. Убеждаемся кофе был заварен крепким и бодрящим. :).

Замена старых ссылок в базе данных

Так как в базе данных сайта имеется огромное количество внутренних ссылок с http, необходимо все их заменить на https. Для этих целей или устанавливаем plugin Better Search Replace и проводим работу с поиском и заменой внутренних и внешних ссылок, или сохраняем базу данных на хостинге через phpMyAdmin (либо другим образом), сохраняем на ПК и проводим поиск и замену при помощи NotePad++.

Я всегда выбираю первое – (Better Search Replace).

Заменяем ссылки при помощи Better Search Replace

Если делаем поиск и замену через Better Search Replace, придерживаемся четкую последовательность в описанных мной пунктах ниже:

В окне настроек плагина Better Search Replace в начале запускаем холостой запуск для того что бы выявить количество ссылок (или для каких других целей).

За тем перед тем как приступить к следующему шагу НАСТОЯТЕЛЬНО РЕКОМЕНДУЮ СДЕЛАТЬ ЕЩЕ РАЗ БЕКАП!

Вот как выглядит окно при поиске и замене:

Вставляем данные написанные ниже в полся “Искать” и “Заменить”, в пункте “Выбор таблиц” нажимаем сочетание клавиш Ctrl+A (для того что бы выбрать все таблицы базы данных), снимаем галку с чекбокса “Холостой запуск” и жмем “Запустить Поиск/Замену”.

1) Внутренние ссылки src:

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

src="http://ваш_домен

на

2) Внешние ссылки src:

Найти

и заменить на

3) Всякого рода вариации для JS скриптов и т.п, например

найти

http:\/\/ВАШ_ДОМЕН\/

заменить на

https:\/\/ВАШ_ДОМЕН\/
4) Последняя и самая важная замена

и заменить на

Так же не забываем найти и заменить http://ВАШ_ДОМЕН на https://ВАШ_ДОМЕН в самописных плагинах и файлах темы (поиск и замену можно делать по выше мной описанным пунктам).

На конечном этапе поиска и замены Вас выбросит из окна настроек плагина на страницу входа в WordPress, но не расстраиваемся. Делаем хороший глоток кофе, прописываем логин и пароль, нажимаем войти и попадаем обратно в админку но уже через протокол передачи данных https.

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

Когда все тесты были пройдены и Вы убедились что сайт работает нормально, переходим к настройке переадресации с http на https через Page Rules страницу настроек (в сервисе CloudFlare).

Настройка переадресации с http на https через Page Rules CloudFlare

Переходим на данную страницу Page Rules и жмем кнопку “Create Page Rule”:

В появившемся окне в форму ввода с плейсхолдером “Example: www.example.com/*” вводим http: и в выпадающем меню под надписью “Then the settings are:” выбираем Always use https. Далее, жмем “Save and Deplay”.

Теперь пытаемся перейти на сайт по http протоколу, Вас должно автоматически редиректить на https.

Настройка ссылки на сайт в панели WordPress

Вернемся в админ панель WordPress и наведем на пункт “Настройки” далее кликнем на пункт “Общие настройки”. Увидим что домен сайта в полях: Адрес WordPress (URL) и Адрес сайта (URL) прописан не правильно (будет //ВАШ_ДОМЕН или http://ВАШ_ДОМЕН), по этому пропишем его как нужно, а нужно https://ВАШ_ДОМЕН в обоих полях, изменяем и нажмем “Сохранить изменения”.

Проверка редиректа с http на https в redirectdetective.com

Теперь не маловажный момент, проверяем что бы на Вашем ресурсе работал 301 редирект с http на https. Для этого используем отличный ресурс по данной ссылке:

http://redirectdetective.com/

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

Источник записи:

SSL WordPress включен, что дальше: настройка https, mixed content

Вступление

В прошлой статье (Как получить бесплатный SSL сертификат), я обещал рассказать, что нужно сделать, когда сертификат SSL WordPress включен, для устранения ошибки Mixed content. Выполняю данное обещание.

Три этапа сделать ваш сайт SSL WordPress

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

Напомню, что переход на безопасный протокол HTTPS для сайта WordPress состоит из трёх этапов:

Этап 1. Установить приобретенный (полученный бесплатно) SSL сертификат на вашем хостинге. Или активировать бесплатный SSL сертификат в панели вашего хостинга.

Для информационных сайтов не собирающих данные клиента и не проводящих платежи, самым простым вариантом будет хостинг с бесплатным SSL сертификатом Let’s Encrypt.

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

Этап 2. На сайтах WordPress поменять протоколы URL сайта на вкладке Настройки>>>Общие>>>Адреса.… (два пункта). Сделать это нужно аккуратно (после резервного копирования сайта), чтобы не получить циклическую переадресацию сайта. Результатом этого этапа должна стать доступность вашего сайта по протоку HTTPS.

Этап 3. Сделать переадресацию сайта HTTP на сайт HTTPS. Как это сделать читать в статье тут.

Этого достаточно, чтобы сайт открывался по протоколу HTTPS. Однако этого будет недостаточно, чтобы все ссылки вашего сайта открывались по безопасному протоколу. Медиафайлы сайта останутся с протоколами http и все браузеры и поисковики будут формально фиксировать ошибку под названием «Mixed content». Это плохо, как для отражения вашего сайта, так и для SEO.

Решить проблему «Mixed content» и все другие проблемы перехода на безопасный протокол поможет актуальный плагин «Really Simple SSL».

Плагин Really Simple SSL WordPress

Данный плагин прост в настройках. Он включает (проверяет включение) SSL, устраняет проблему «Mixed content», активирует 301 redirect. Есть отдельные настройки 301-переадресации для серверов ngnx и «чистых» apache.

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

Настройка https сторонних фалов

Плагин Really Simple SSL не затронет сторонних файлов размещенных на вашем сайте, например, картинок или видео со сторонних сайтов или архивов. Если они были размещены на сайте с протоколами http они так и останутся.

Чтобы устранить «Mixed content» на этих страницах, нужно вручную поменять протокол файлов в редакторе или удалить небезопасные ссылки.

Завершите SSL WordPress переход контролем

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

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

Во-вторых, на этих выбранных страницах сайта откройте инструменты разработчика браузера. В инструментах вкладку «Security». Проверьте отсутствие ошибок «Mixed content».

В-третьих, проскандируйте ссылки вашего сайта и выявите ссылки с протоколом http. Сделать это можно одной из следующих программ:

  • Screaming Frog SEO Spider Tool. 500 URL бесплатно.
  • Netpeak Spider. Бесплатно 14 дней.
  • Xenu’s Link Sleuth. Полностью бесплатно.

Заключение

Настройка SSL WordPress сайта с плагином не представляет сложностей, но не забывайте о резервной копии сайта. При этом помним, что любой плагин «крадёт» время загрузки вашего сайта.

©wpkupi.ru

Еще статьи

Похожие посты:

Бесплатный SSL-сертификат для WordPress | StylemixThemes

Браузер Chrome отображает предупреждение для любого сайта, у которого нет префикса «https» в веб-адресе. Установка бесплатного SSL-сертификата устраняет это предупреждение для вашего сайта WordPress.

SSL-сертификат защищает ваш сайт путем шифрования соединения между сайтом и конечным пользователем.

Поскольку 59,66% пользователей используют браузер Chrome, важно, чтобы ваш веб-сайт WordPress имел защищенный SSL и HTTPS. Это поможет посетителям доверять вашему сайту.

Получить SSL-сертификат можно быстро и бесплатно. Let’s Encrypt является надежным поставщиком бесплатных сертификатов SSL через официально рекомендованного Certbot.

Сегодня мы расскажем подробнее о SSL, HTTPS, Let’s Encrypt и Certbot. И самое главное как вручную установить, управлять и обновлять бесплатный SSL-сертификат на вашем веб-сервере. Это необходимый элемент защиты вашего WordPress-сайта. Сайты с HTTPS-протоколом не дают ошибки в Chrome. Это позитивно отражается на SEO сайта.

Что такое SSL и HTTPS и зачем это нужно?

Сертификат SSL (аббревиатура от Secure Sockets Layer, дословно: протокол безопасных соединений) – это общедоступный цифровой документ, выданный центром сертификации, который связывает криптографический ключ с прикрепленным к нему веб-сайтом. Представляет собой шифрование на основе безопасного и надежного обмена информацией между сайтом и его посетителелями.

Все веб-сайты с действующим SSL-сертификатом используют протокол HTTPS и SSL, которые шифруют связь между сервером веб-сайта и браузером конечного пользователя. Вы замечали, что есть сайты, которые начинаются с http, и те, у которых https? SSL-сертификат и служит для получения этой самой —s, что позволяет иметь долгожданный зеленый замок в браузере.

Сайты с SSL имеют весомое защитное обозначение:

Сайты, которые не перешли на HTTPS имеют cкучный серый вид информационного знака: 

Наличие действующего SSL-сертификата подтверждает, что ваш сайт заслуживает доверия пользователей. Они могут вводить конфиденциальные данные и быть при этом надежно защищены. Чего нельзя сказать о сайтах, имеющих «http» в своем URL-адресе. А еще SSL сертификат блокирует хакерские атаки и защищает от несанкционированного доступа.

Раньше SSL использовали только для интернет-магазинов, банков и сайтов, где обрабатывается конфиденцальные данные. Однако сейчас сертификат стал доступен всем.

В июле 2018 Google объявил, что абсолютно все сайты без HTTPS будет помечать как «не защищенные». Совсем скоро всем им будет выдаваться вот такой значок:

Что такое Let’s Encrypt?

Одним из главных аргументов Google в защиту политики безопасности и является проект Let’s Encrypt (одно из решений Linux Foundation). Некоммерческая организация бесплатно выдает SSL-сертификаты. Получить сертификат может каждый желающий как вручную на https://www.sslforfree.com/, так и автоматически: запустив процесс верификации и перевыпуска по открытыму протоколу ACME.

Из множества клиентских реализаций под разные веб-серверы, официально рекомендуемый клиент — CertBot (он и развивает Electronic Frontier Foundation). Есть хорошая новость — с февраля 2018 года они стали выдавать wildcard сертификаты.

Let’s Encrypt — это автоматизированный центр сертификации, предоставленный Исследовательской группой Internet Security Research (ISRG), некоммерческой организацией, которая посвятила себя созданию более безопасного интернет-пространства. Это наиболее популярный сервис по созданию бесплатных SSL-сертификатов. Его развивают таких гиганты рынка, как Google, Facebook, Mozilla. Такой сертификат бесплатный, но и такой же надежный, как любой другой SSL-сертификат.

Типы сертификатов

Let’s Encrypt предлагает получить самозаверенный сертификат (domain validaed). Он является сертификатом самого низкого уровня и подтверждает, что веб-сайт владеет доменным именем, на которое претендует. Есть еще один тип сертификата — extended validation. Это проверка личности владельца сертификата специалистами выдачи. Если у вас сайт на WordPress, то вам достаточно получить самозаверенный сертификат.

С января 2018 года Let’s Encrypt педлагает получить подстановочный сертификат, который позволяет вам защищать все поддомены веб-сайта с помощью единого сертификата. Например, info.example.com и about.example.com.

Вы также должны получить протокол ACMEv2 и клиентскую поддержку. Для получения дополнительной информации ознакомьтесь с ACME Client Implementations.

Сертификаты Let’s Encrypt действительны в течение 90 дней без исключений. Рекомендуется продливать сертификаты каждые 60 дней, чтобы у вас было в запасе 30 дней для решения любых возникающих проблем. Хотя в зависимости от вашего сервера можно настроить автоматическое обновление.

Как получить SSL-сертификат

Самый простой способ получить бесплатный SSL-сертификат от Let’s Encrypt — через ваш веб-хостинг.

Let’s Encrypt сотрудничает со многими хостинг-провайдерами, которые позволяют по умолчанию шифровать и перенаправлять на HTTPS. Если вы не знаете, поддерживает ли ваш хостинг Let’s Encrypt, посмотрите список совместимости хостинг-компаний. Ваш хостинг не знает о Let’s Encrypt? Вы можете связаться с техподдержкой и сообщить, что это хороший вариант сотрудничества.

Если ваш хостинг-провайдер не совместим с Let’s Encrypt, одним из самых простых способов установить бесплатный SSL-сертификат является Certbot. Это официально рекомендуемый сервис Let’s Encrypt, который извлекает и развертывает SSL-сертификат на вашем веб-сервере.

Certbot — официально рекомендуемый клиент Let’s Encrypt

Согласно документации Certbot, «Certbot стремится создать безопасную и защищенную от цензуры сеть». Certbot предоставляет простые в применении инструкции на основе вашего программного обеспечения и операционной системы.

Установка Certbot

Certbot работает с различными ОС и серверами. Лучший способ установить Certbot — перейти на сайт и прочитать инструкции по установке. В большинстве случаев для авторизации CertBot вам необходим доступ root или администратора.

Установка обычно происходит через SSH. Это защищенный криптографический протокол, который позволяет передавать файлы по небезопасным сетям. Популярными клиентами SSH являются терминалы для Mac OS X и PuTTY для Windows.

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

В зависимости от ваших настроек и потребностей сайта существует несколько способов установить самозаверенный сертификат. Веб-сайт Certbot проведет вас через весь процесс установки по шагам на основе настроек вашего сервера.

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

Если вы хотите установить подстановочный сертификат, вам придется использовать плагин DNS.

Вы можете ознакомиться с документацией Certbot для получения более подробной информации.

Автономный режим

Если у вас нет серверного программного обеспечения, такого как Apache или Nginx, и вы не заинтересованы в его получении, использование плагина — лучший вариант.

С плмощью плагина необходимо будет привязать веб-сервер к портам 80 (для HTTP) и 443 (для SSL), чтобы проверить домен. Вам может потребоваться освободить эти порты на вашем сервере заранее.

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

Убедившись, что Certbot установлен и доступен порт 80 или 443, введите эту команду в свой SSH.

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


//For Port 80
certbot certonly --standalone --preferred-challenges http -d example.com

//For Port 443
certbot certonly --standalone --preferred-challenges tls-sni -d example.com


Сertonly получает (или в определенных контекстах, обновляет) сертификат, но не устанавливает его, —standalone сообщает Certbot о запуске автономного веб-сервера для аутентификации, —preferred-challenge обозначает сообщение, которое Certbot будет использовать и -d указывает доменное имя, для которого вы запрашиваете SSL-сертификат.

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

Плагин Webroot

Использование Webroot имеет место, если у вас есть доступ к редактированию содержимого на сервере. Здесь вы помещаете файл проверки в определенное место на вашем веб-сервере. Этот метод удобен, потому что вам не нужно переключаться на какие-либо порты и беспокоиться о том, что можно случайно снести свой действующий сайт во время установки.

Для использования плагина Webroot вам необходимо убедиться, что ваш сервер настроен и отображает файлы скрытых каталогов и, в частности, папки /.well-known.

Запустите эту команду в своем SSH, чтобы установить Webroot:


certbot certonly --webroot -w /var/www/example -d www.example.com -d example.com


Команда certonly получает сертификат, —webroot сообщает Certbot о методе, который вы используете, и вам нужно указать -w или -webroot-path, а затем путь к файлу, содержащеу самый верхний каталог, в котором есть файлы, веб-сервер, —webroot-path / var / www / html — общий путь к веб-каналу.

Подробности смотрите в документации Certbot.

Где хранятся ваши сертификаты?

Все ключи и выданные сертификаты можно найти в / etc / letencrypt / live / $domain, который регулярно обновляется.

Вот список файлов в вашем сертификате:

  • Privkey.pem – ваши личные ключи хранятся здесь и должны храниться в секрете, даже от разработчиков Certbot. Но вы можете открыть их для сервера только пользователю root,
  • Fullchain.pem – все ваши сертификаты хранятся здесь, и если их несколько, первым отображается сертификат сервера,
  • Cert.pem – содержит сертификат отдельного сервера, 
  • Chain.pem – здесь хранятся все промежуточные сертификаты, а также сертификаты, необходимые для проверки сервера.

Если вы хотите проверить содержимое своего файла в каталоге, используйте команду /etc/letsencrypt/live/example.com в своем SSH, чтобы увидеть весь список.

Обновление SSL-сертификата

Certbot стремится максимально упростить обновление, проверив все установленные сертификаты на предстоящий срок, а затем их обновить.

Приведенная ниже команда проверяет сертификаты на оставшийся срок действия и обновляет их:


certbot renew


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

Если у вас несколько доменных имен, и вы хотите обновить только один домен, эта команда certonly поможет:


certbot certonly -n -d example.com -d www.example.com


Обратите внимание: Certbot рекомендует включать -n или -noninteractive, чтобы предотвратить блокировку ввода пользователем.

Выводы

Установка SSL-сертификата является важной мерой безопасности для любого WordPress-сайта. Let’s Encrypt и Certbot предоставят быстрые и бесплатные способы защиты вашего сайта с помощью HTTPS и SSL-сертификата.

Для получения подробной информации ознакомьтесь с обширной документацией Certbot и форумом сообщества.

У вас получилось установить бесплатный SSL-сертификат с помощью Let’s Encrypt? Поделитесь своим опытом в комментариях ниже. Читайте также наше руководство о том, как появиться в расширенных сниппетах Google и стать дружелюбнее с самым распространненным поисковиком в мире. 

Переезд WordPress сайта на https или как настроить SSL в nginx на A+ : Отзыв

Статья обновлена 16 января 2021 года.

Настала пора переезжать на новый и безопасный протокол HTTPS. Большинство статей об установке SSL сертификатов и интеграции процесса переезда с Яндексом как оказалось устарели, поэтому пишу свою.

В Яндексе переезд проходит плавно, проседания трафика не замечено, ТИЦ остался тем же и на старом и на новом сайте, за две недели почти все страницы были переиндексированы со старого сайта на новый, а еще через 3 дня Вебмастер показал, что сайты склеились.

Если к страницам сайта были подключены комментарии Facebook, то они в результате переезда будут потеряны, так как формально страница будет иметь новый адрес. Комментарии ВКонтакте при этом не учитывают протокол и остаются на месте.

1. Делаем бэкап своим любимым способом:
— базы данных сайта
— файлов сайта
— настроек nginx

2. Рекомендуется обновить все пакеты на сервере. У меня на сервере стоит Centos 7 для неё команда такая:

yum update

3. Разрешим на постоянной основе соединение на SSL порт 443/tcp и перегрузим правила

firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --reload

4. Убедимся, что SSL порт 443 открыт:

firewall-cmd --zone=public --list-ports

5. Заходим на сайт https://certbot.eff.org/ Это сайт организации Let’s Encrypt, которая выдаёт SSL-сертификаты бесплатно на 90 дней с возможностью их дальнейшего автоматического продления — так чтобы один раз настроил и забыл. Выбираем там в выпадающих списках nginx и Centos/RHEL 7 — в результате чего внизу появится инструкция на английском.

6. Подключаем репозиторий EPEL (если не подключен, у меня уже подключен) и после этого устанавливаем утилиты

yum -y install yum-utils
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

7. Устанавливаем сам Certbot — клиент для обновления сертификатов

yum install certbot

7.1 Определим, какие плагины certbot установлены (нам нужен плагин nginx)

certbot plugins

Если плагина nginx нет, то его нужно установить.

7.2 Устанавливаем плагин certbot-nginx (pip3 — это менеджер пакетов Pyton версии 3, так как certbot написан на языке Pyton)

pip3 install certbot-nginx

7.3 Проверим ещё раз, какие плагины certbot установлены

certbot plugins

Плагин nginx должен появиться.

8. Запускаем первоначальную настройку Certbot

certbot --nginx

Запустится программа, которая выдаст несколько диалогов:
8.1. вводим свой email для регистрации на Let’s Encrypt
8.2. читаем и соглашаемся с условиями использования
8. https://site.ru$request_uri? permanent; } # здесь основная конфигурация https://site.ru server { listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot server_name site.ru; # здесь идут дальнейшие директивы }

Если на сервере несколько сайтов, то для всех кроме одного можно из бэкапа вернуть конфиги nginx на время пока делаются дальнейшие настройки по переезду. И далее настраивать HTTPS только для одного сайта, а остальные пока будут доступны по HTTP. Кстати, несколько https-сайтов на одном сервере могут спокойно работать через один ip-адрес благодаря технологии Server Name Indication (SNI), которую поддерживает nginx и все современные браузеры.

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

systemctl restart nginx

10. Вносим дополнения в файл /etc/letsencrypt/options-ssl-nginx.conf который подключается в конфигурации nginx выше. Они нам позволят увеличить SSL-рейтинг сайта с A до A+

# эти директивы задал сам Certbot (здесь стоит только увеличить значение ssl_session_cache до 50m)
ssl_session_cache shared:le_nginx_SSL:50m;
ssl_session_timeout 1440m;
ssl_session_tickets off;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;

ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";

# эти директивы я добавил
# ssl on; # устарела с версии nginx 1.15.0
add_header Strict-Transport-Security "max-age=31536000;";
resolver 8.8.8.8 8.8.4.4 valid=300s;
ssl_stapling on;
ssl_stapling_verify on;
resolver_timeout 10s;

И вновь перезагружаем nginx. Проверить SSL-рейтинг сайта можно здесь: https://www.ssllabs.com/ssltest/ — там в поле вписать свой домен.

11. Заменим в исходных кодах сайта конструкцию http://site.ru на https://site.ru, где site.ru — наш домен. Для этого можно открыть файл бэкапа базы данных сайта в любимом текстовом редакторе и сделать автозамену http://site.ru на https://site.ru. Затем необходимо импортировать измененный бэкап на сервер БД. После этой манипуляции в WordPress может слететь:
— настройка вывода меню, которая настраивается во Внешний вид — Меню — Управление областями
— фоновое изображение сайта, если оно было назначено средствами WordPress — настраивается во Внешний вид — Фон — Фоновое изображение
— текстовые виджеты в сайдбаре и подвале — они теряются бесследно, поэтому перед импортом изменённой базы данных их лучше где-то сохранить, чтобы потом можно было восстановить как было

12. Аналогично поступаем со всеми файлами сайта, в файлах с расширениями html, php, js, css ищем и заменяем все включения http://site.ru на https://site.ru

13. Заходим в админку WordPress в раздел «Настройки» — «Общие» и проверяем, что там в двух полях указано https://site.ru

14. Если в WordPress используется какой-то плагин для автоматической генерации карты сайта, то перегенерируем карту сайта, чтобы ссылки внутри нее стали с протоколом https.

15. В файле robots.txt нашего сайта в директивах host и sitemap меняем http на https вот так:

Sitemap: https://site.ru/sitemap.xml  
Host: https://site.ru

16. Добавим до тега </head> на страницах сайта нижеследующий код. Он необходим для правильной передачи реферрера сторонним сайтам.

<meta name="referrer" content="origin">

17. Если к сайту подключены скрипты сторонних сервисов:
— ВКонтакте: https://vk.com/apps?act=manage в Настройках приложения для сайта меняем адрес сайта на https
— Facebook https://developers.facebook.com/apps/ в Настройках приложения для сайта меняем адрес сайта на https
— социальные кнопки Share42 http://share42.com/ru — перегенерировать код и заменить его на сайте
— комментарии ВКонтакте для сайта https://vk.com/dev/Comments — перегенерировать код и заменить на сайте
— комментарии FaceBook для сайта https://developers.facebook.com/docs/plugins/comments/?locale=ru_RU — перегенерировать код и заменить на сайте
— виджет группы Одноклассники для сайта https://apiok.ru/ext/group — перегенерировать код и заменить на сайте
— виджет группы Facebook для сайта https://developers.facebook.com/docs/plugins/page-plugin — перегенерировать код и заменить на сайте
— виджет группы ВКонтакте для сайта https://vk.com/dev/Community — перегенерировать код и заменить на сайте

18. Запустим в Вебмастере Mail.ru переезд сайта на https https://webmaster.mail.ru
— зайти в Настройки сайта и отметить галочку Показывать «https»

19. Запустим в Вебмастере Bing переезд сайта на https https://www.bing.com/webmaster/home/mysites
— Заходим в Средства диагностики — Перемещение сайта и выбираем:

  • «Я перемещаю URL-адреса из одного места на текущем сайте в другое (site.ru).»
  • Область: Каталог
  • Исходный: http://site.ru
  • Конечный: https://site.ru
      — Заходим в Настройка сайта — Sitemaps и добавляем ссылку на xml-карту сайта: https://site.ru/sitemap.xml

20. Запустим в Яндекс.Вебмастере переезд сайта на https. Где-то с марта 2018 года Яндекс отказался от использования директивы host в файле robots.txt в качестве определяющего фактора при переезде сайта на HTTPS и теперь рекомендует для склейки доменов http и https просто установить 301-й редирект со всех страниц в http на аналогичные им страницы в https. Таким образом теперь механизм переезд сайта на Яндекс аналогичен механизму переезда сайта на Google.
— Заходим в Вебмастер https://webmaster.yandex.ru/ и добавляем новый сайт https://site.ru
— Для сайта https заходим в Индексирование — Файлы Sitemap и добавляем ссылку на xml-карту сайта: https://site.ru/sitemap.xml
— Для сайта http заходим в Индексирование — Переезд сайта, отмечаем галочку Добавить HTTPS и нажимаем Сохранить

21. Запустим в Google Serch Console переезд сайта на https https://www.google.com/webmasters/tools/home?hl=ru&authuser=0
— Заходим в Вебмастер и нажимаем Добавить ресурс, вводим https://site.ru
— Для сайта https заходим в Сканирование — Файлы Sitemap и добавляем ссылку на xml-карту сайта: https://site.ru/sitemap.xml

22. Настроим бэкап папки /etc/letsencrypt Создадим файл le.sh со следующим содержимым:

#!/bin/sh
date_time=`date +"%Y-%m-%d_%H-%M"`
le_dir='/mnt/disk_backup/letsencrypt'
tar -czvf $le_dir/le_$date_time.tar.gz -C /etc/ letsencrypt
/usr/bin/find $le_dir -type f -mtime +30 -exec rm {} \;
#хранить файлы не старше 30 дней

23. Настроим автопродление сертификатов. На сайте производителя рекомендуется запускать обновление сертификатов дважды в сутки, при этом обновятся сертификаты не ранее, чем за 30 дней до окончания срока своего действия, который составляет 90 дней. Добавим в cron строки:

0 0 * * * root /usr/bin/certbot renew --allow-subset-of-names --post-hook 'nginx -s reload'
1 12 * * * root /usr/bin/certbot renew --allow-subset-of-names --post-hook 'nginx -s reload'
# запустит команду в 00:00 и в 12:01
# renew - обновит сертификаты
# --allow-subset-of-names - обновит сертификаты даже если один из доменов был удалён с сервера
# --post-hook 'nginx -s reload' - перезагрузит nginx после обновления сертификатов

0 2 * * * root /backup/le.sh >/dev/null 2>&1
# запустит скрипт бэкапа папки letsencrypt в 02:00 и отработает тихо без лишних сообщений

После каждого запуска обновления сертификатов в каталоге /var/log/letsencrypt создаётся log-файл, количество которых ограничено 100 штуками и не регулируется.

24. Перезагрузим cron

systemctl restart crond.service
P.S.

Со временем нам может понадобиться получить SSL-сертификат для нового домена, для этого:

1. Вновь запускаем настройку Certbot

certbot --nginx

Запустится программа, которая задаст два вопроса:
1.1. программа выведет все домены настроенные в nginx — здесь вводим через пробел номера новых доменов newdomain.ru и www.newdomain.ru и нажимаем Enter

С этого момента сайт работает на HTTPS. Если открыть сайт в браузере http://www.newdomain.ru, то он будет перенаправлен на https://newdomain.ru

2. В конфигурационном файле домена в nginx можно увидеть, какие изменения Certbot внёс в него. Можно подправить его для удобочитаемости аналогично тому, как я сделал это выше в пункте 9. При этом следует обратить внимание на директивы ssl_certificate и ssl_certificate_key — пути до ключей в них будут отличаться от путей для ранее добавленных доменов.

3. Перезагружаем nginx после внесённых изменений

systemctl restart nginx

Обновление сертификата для нового домена будет происходить согласно ранее сделанным настройкам автопродления сертификатов в пункте 23.

P.P.S.

Посмотреть какие SSL-сертификаты установлены в системе и сколько дней они ещё действительны можно такой командой:

certbot certificates

А изменить состав доменов, содержащихся в сертификате или даже заменить домены полностью можно такой командой:

certbot certonly --cert-name site.ru -d site.com,www.site.com

HTTPS для сайта на WordPress под управлением nginx.

В последнее время наблюдается бум перехода на HTTPS не только для интернет магазинов, но и для информационных сайтов, коими по большей части и являются сайты, созданные на популярной платформе WordPress. Двигателем подобного перехода послужило заявление создателей Chromium о маркировке сайтов без HTTPS как небезопасных. Движок Chromium используется во многих популярных браузерах (основной тут конечно Google Chrome). Кроме того, Google заявил об изменении в ранжировании сайтов и приоритизации в выдаче ресурсов, использующих безопасное соединение.

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

Данная статья расскажет о том, каким образом осуществить перевод на HTTPS сайтов, использующих WordPress, не потратив денег на SSL сертификат, получить оценку безопасности A+ в популярном тесте, минимизировать накладные расходы на обслуживание HTTPS соединений и выполнить требования Яндекса для успешной индексации картинок.

UPD: В связи с появлением атаки Weak Diffie-Hellman and the Logjam Attack статья обновлена. Проверьте свои сайты на предмет уязвимости к этой атаке!

В статье предполагается, что наш сервер использует nginx в качестве веб сервера. Если ваш сайт все еще использует Apache, советую задуматься о переходе, так как это даст достаточно приличный прирост производительности и позволит использовать последний тренд в оптимизации HTTPS — технологию SPDY. Подробная инструкция по настройке WordPress на nginx доступна по ссылке: Руководство по настройке блога WordPress на nginx.

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

Все операции по настройке HTTPS можно разделить на 4 этапа:

  1. Получение сертификата.
  2. Настройка nginx.
  3. Настройка WordPress.
  4. Проверка результата.

Получение сертификата.

В данной главе мы поговорим о получении бесплатного валидного сертификата от компании StartSSL. Конечно есть ненулевая вероятность того, что в старых браузерах нет их корневого сертификата, но по итогам установки их сертификата на сервер Admins.SU, не встретилось ни одного клиента с подобной проблемой. Большинство элементов сайта StartSSL.com русифицировано, так что с регистрацией проблем возникнуть не должно, но на всякий случай опишу все шаги.

  1. Перейдем на страницу https://www.startssl.com/?app=12

Если мы попробуем сразу зайти в контрольную панель по кнопке Authenticate, то получим ошибку: При соединении с auth.startssl.com произошла ошибка. SSL-узлу не удалось договориться о приемлемом наборе параметров безопасности. (Код ошибки: ssl_error_handshake_failure_alert). Все дело в том, что аутентификация происходит по сертификату, который необходимо получить в результате регистрации.

Так что для начала нажмем на кнопку Sign-up.

  1. Заполним все требуемые поля. Пусть вас не вводит в заблуждение отсутствие звездочки напротив телефона. Без него регистрация не пройдет

  2. Получим на почту код подтверждения, который и введем на сайте.

  3. После завершения регистрации в браузер пропишется сертификат, по которому и будет осуществлен доступ в панель управления StartSSL.

  4. Важно этот сертификат забэкапить. Для этого необходимо произвести экспорт вместе с секретным ключом. Так как файл экспорта может попасть в руки сторонним людям, обязательно ставьте пароль.

В Google Chrome:

a. Войдите в настройки Google Chrome. b. На главной странице настроек снизу нажмите «Показать дополнительные настройки». c. В секции HTTPS/SSL найдите кнопку «Настроить сертификаты» и нажмите на нее. d. Во вкладке «Личные» найдите ваш сертификат от StartCom выданный, на вашу почту. e. Выберите этот сертификат и нажмите «Экспорт». f. В меню про экспорт закрытого ключа выберите «Да, экспортировать закрытый ключ». g. В следующем окне отметьте галочками «Включить по возможности все сертификаты в путь сертификации» и «Экспортировать все расширенные свойства». h. Укажите имя файла, в который вы сохраните сертификат i. После сохранения файла сохраните его в надежном месте.

В Firefox:

a. Войдите в настройки Firefox. b. Перейдите в меню «Дополнительные». c. Откройте вкладку «Сертификаты». d. Нажмите на кнопку «Просмотр сертификатов». e. Перейдите во вкладку «Ваши сертификаты». f. Найдите ваш сертификат на имя почты. g. Нажмите на кнопку «Сохранить копию». h. Укажите имя файла имя файла и нажмите «Сохранить». i. Укажите пароль для сертификата. Нажмите ОК.

Теперь можно зайти на страницу https://auth.startssl.com/

  1. На странице https://auth.startssl.com/ нажмем на кнопку «Contol Panel».

  2. Перейдем по вкладке «Validations Wizard».

  3. В поле Type укажем «Domain Name Validation».Нажмем Continue.

  4. На странице «Enter Domain Name» укажем имя домена. Нажмем Continue.

  5. На следующей странице необходимо указать email, с помощью которого будет проходить валидация. Это адреса postmaster/hostmaster/webmaster @ ИМЯ_домена или адрес, на который домен зарегистрирован. Выберем любой удобный и нажмем Continue.

  6. На почту придет «Authentication Code», который необходимо будет ввести на странице валидации.

  7. Перейдем по вкладке «Certificates Wizard».

  8. В поле «Certificate Target:» выберем Web Server SSL/TLS Certificate. Нажмем Continue.

  9. На странице «Generate Private Key» можно либо создать новый Private Key, либо пропустить этот шаг, нажав Skip, чтобы использовать свой Private Key. Если вы создаете новый, то необходимо ввести пароль (Key Password) от 10 символов, длину ключа (Keysize) и алгоритм (Secure Hash Algorithm). Длина ключа 2048 обычно достаточна, алгоритм SHA1 не подходит для новых браузеров, так что выберем SHA2. После этого нажмем Continue.

  10. Выберем наш домен из выпадающего списка и нажмем Continue.

  11. Теперь необходимо указать субдомен, обычно это WWW.ИМЯ_ДОМЕНА. После этого нажмем Continue и на следующей странице снова Continue.

  12. На следующей странице мы получим код сертификата, который необходимо сохранить. В ряде случаев сервис может сообщить, что для выпуска сертификата требуется время. В этом случае уведомление о выпуске придет на почту, а получить сертификат можно будет на вкладке «Tool Box» по ссылке «Retrieve Certificate».

  13. После генерации личного ключа, его можно расшифровать с помощью команды «openssl rsa -in ssl.key -out ssl.key», либо в Tool Box сайта StartSSL по ссылке «Decrypt Private Key». Можно этого не делать, но тогда каждый раз при перезапуске nginx придется указывать этот пароль. С другой стороны это безусловно повысит уровень безопасности.

Настройка nginx.

После получения сертификата, его необходимо подключить к нашему nginx. Все, описанное ниже, предполагает, что настройки nginx выполнены согласно руководству по настройке WordPress для LEMP. Если вы используете свой конфиг nginx, настройки могут отличаться.

  1. Сохраним все необходимые сертификаты на сервере с nginx:
1
sudo mkdir /etc/nginx/ssl && cd $_

1.1. Данный пункт появился в связи с новой атакой Weak Diffie-Hellman and the Logjam Attack. Для унификации инструкции, данный пункт обязателен для любой версии Linux, т.к. ниже в конфигах на него идут отсылки.

Исполним данный код:

1
2
3
4
5
6
sudo mkdir -p /etc/nginx/ssl/private
sudo chmod 710 /etc/nginx/ssl/private

cd /etc/nginx/ssl/private
sudo openssl dhparam -out dhparams.pem 2048
sudo chmod 600 dhparams.pem
  1. В файл вставим полученный ранее Private key:
1
2
cd /etc/nginx/ssl
sudo nano private.key
  1. В файле сохраним полученный сертификат. Вместо %SITENAME% укажите имя своего домена:
1
sudo nano %SITENAME%.pem
  1. Скачаем вышестоящий сертификат:
1
sudo wget https://www.startssl.com/certs/sub.class1.server.ca.pem
  1. Произведем склейку сертификатов для дальнейшего использования в nginx. Вместо %SITENAME% необходимо указать имя вашего домена:
1
cat %SITENAME%.pem sub.class1.server.ca.pem > %SITENAME%-chain.pem
  1. Изменим конфигурационный файл nginx для работы по HTTPS. Вместо %SITENAME% укажите имя своего домена без WWW:
1
sudo nano /etc/nginx/conf.d/%SITENAME%.conf
  1. В секции Server найдем параметр listen, исправим порт с 80 на 443, добавим ключи ssl и spdy:
1
2
# listen *:80;
listen *:443 ssl spdy;
  1. После строки с параметром index вставим следующее, не забыв сменить %SITENAME% на имя домена без WWW:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Включить поддержку ssl.
ssl on;
# Путь до файла, содержащего склеенный сертификат домена и вышестоящего узла
ssl_certificate /etc/nginx/ssl/%SITENAME%-chain.pem;
# Путь до Private Key
ssl_certificate_key /etc/nginx/ssl/private.key;
# Разрешенные протоколы. SSL3 дырявый, SSL2 старый. TLSv1 оставляем только для совместимости со старыми браузерами. Если таких нет, лучше удалить.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# Виды разрешенных шифров. Указаны наиболее распространенные, исключая небезопасные.
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
# Исключаем возможность BEAST-атаки.
ssl_prefer_server_ciphers on;
# Исключаем возможность атаки Weak Diffie-Hellman and the Logjam Attack
ssl_dhparam /etc/nginx/ssl/private/dhparams.pem;
# Время жизни SSL сессии.
ssl_session_cache shared:SSL:10m;
# Таймаут сессии.
ssl_session_timeout 5m;
#Позволяет серверу прикреплять OCSP-ответы, тем самым уменьшая время загрузки страниц у пользователей.
ssl_stapling on;
# Требуется для ssl_stapling.
resolver 8.8.8.8 8.8.4.4;
# HSTS. Механизм, активирующий форсированное защищённое соединение по HTTPS
add_header Strict-Transport-Security max-age=31536000;
  1. Теперь перейдем в конец файла и добавим новую секцию Server для настройки переадресации с HTTP на HTTPS с возможностью передачи картинок по HTTP (сделано для нормальной индексации картинок Yandex картинками):
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# Не забудьте изменить %SITENAME% на имя домена..+\.(jpg|jpeg|gif|png|ico|bmp)$ {
access_log off; log_not_found off; expires 60d;
}
location / {
# Перенаправим все остальные запросы на HTTPS.
return 301 https://$server_name$request_uri;
}
  1. После сохранения файла проверим конфигурационный файл:

Если все сделано правильно, перезапустим nginx:

Настройка WordPress.

Для нормальной работы WordPress по HTTPS необходимо изменить его настройки. Для этого воспользуемся wp-cli.

Скачаем wp-cli:

1
2
cd ~/
curl -L https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar > wp-cli.phar

Дадим wp-cli права на выполнение, переместим его в директорию из PATH, проверим работоспособность:

1
2
3
sudo chmod +x /usr/bin/wp-cli.phar
sudo mv /usr/bin/wp-cli.phar /usr/bin/wp
wp --version

Теперь перейдем в директорию с сайтом и выполним команду wp search-replace. Вместо %SITENAME% укажите имя своего домена без WWW:

1
wp search-replace 'http://%SITENAME%' 'https://%SITENAME%'

Поздравляю, настройка завершена. Осталось зайти в административную панель WordPress и удалить кэши.

Проверка результата.

Убедившись, что сайт теперь полностью под властью SSL, можно проверить настройки на стандартные проблемы в безопасности с помощью замечательного ресурса https://www.ssllabs.com

На момент написания статьи сайт с приведенными выше настройками заработал оценку A+.

ВАЖНО: статья не прошла боевого крещения и возможно не учитывает каких либо индивидуальных тонкостей в настройке. Если у вас возникли проблемы с использованием HTTPS и вы следовали выше приведенной инструкции, пожалуйста не стесняйтесь оставлять комментарии, я обязательно помогу.


Смотрите также

SSL в WordPress. Установка сертификата от Let’s Encrypt и настройка https:// на сайте — WordPressify

Первоначально этот пост был опубликован, ещё когда не было бесплатных сертификатов Let’s Encrypt, теперь же, с их появлением, произошли некоторые изменения, как минимум, на каждом сайте с SSL теперь написано «Надёжный»:

Если же у вас есть например форма авторизации на странице и нет https://, то гугл хром соответственно будет указывать «Нанадёжный», а если вы платежи по картам принимаете и нет SSL, то хром вообще с ума сойдет 😂 также все говорят о влиянии SSL на SEO, а потому с начала этого года (2017) все просто активизировались и загорелись установкой SSL-сертификата себе на сайт.

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

Вообще, на мой взгляд есть два варианта настройки защищенного соединения на сайте WordPress:

  • админка через https, а сайт через http (опять-таки, в 2015 году это ещё было актуально, но теперь прикольно делать весь сайт на https://, поэтому скипайте первую часть поста и переходите сразу ко второй),
  • полностью весь сайт через https.

SSL в админке и для страницы wp-login.php 


Если вам нужно, чтобы админка сайта WordPress и страница авторизации wp-login.php были доступны только по защищенному соединению, вставьте эту строку в файл wp-config.php (конфигурационный файл, находится в корне сайта):

define('FORCE_SSL_ADMIN', true);

Как сделать, чтобы остальной сайт всегда был без https

Это нужно для того, чтобы страницы вашего сайта не были доступны по двум адресам одновременно (с https и без).(.*) https://%{SERVER_NAME}/$1 [R,L] # дальше пойдут правила постоянных ссылок WordPress, если таковые имеются

Однако у некоторых хостингов с этим кодом могут возникнуть проблемы, в таком случае не трогайте .htaccess, а вставьте например в самое начало functions.php:

$use_sts = true;
if ($use_sts && isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
    header('Strict-Transport-Security: max-age=31536000');
} elseif ($use_sts) {
    header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], true, 301);
    die();
}
  • Уведомляем Google об изменениях:
    1. Заходим в Webmaster Tools
    2. Добавляем туда свой сайт ещё раз, но на этот раз с https://.
    3. Открываем теперь в Google Webmasters сайт с http:// и нажимаем в меню с шестеренкой ссылку «Изменение адреса».
    4. Выполняем инструкции гугла и жмём «Отправить».
  • Уведомляем Яндекс об изменениях:
    1. В директиве hosts в файле robots.txt укажите протокол https://:
    2. Вы можете также использовать инструмент Главное зеркало в панели Яндекс Вебмастер.
  • Как использовать SSL и HTTPS на вашем сайте WordPress (правильный путь)

    Если у вас есть веб-сайт, могут быть люди, которые доверяют вам свою личную информацию. Это означает, что вам необходимо обеспечить соблюдение строгих стандартов безопасности, и как Secure Sockets Layer (SSL или TLS), так и защищенный протокол передачи гипертекста (HTTPS) играют важную роль в этом. К счастью, настроить SSL-сертификат WordPress и применить HTTPS на платформе довольно просто, и это можно сделать всего за несколько шагов.

    В этой статье мы поговорим о:

    1. Что такое SSL и когда его следует использовать.
    2. Что такое HTTPS и как он работает вместе с SSL.
    3. Как настроить WordPress для использования HTTPS и SSL двумя разными способами.
    4. Две распространенные ошибки, с которыми можно столкнуться при использовании SSL с WordPress, и способы их устранения.

    У нас есть важная тема, которой нужно заняться, и много земли, которую нужно преодолеть, так что приступим прямо к делу!

    Что такое SSL (и когда его следует использовать)

    Secure Sockets Layer (SSL) — это технология, которая создает безопасное соединение между веб-сайтом и браузером.Веб-сайты, использующие SSL, имеют «сертификаты», которые позволяют вам знать, что ваша личная информация в безопасности при каждой передаче.

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

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

    Что касается вашего собственного веб-сайта, использование SSL является обязательным.У этого есть ряд преимуществ:

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

    Чтобы уточнить этот последний пункт, поисковые системы, такие как Google, рекомендуют всем веб-сайтам использовать SSL, отдавая предпочтение безопасным сайтам в своих результатах.Это означает, что вы можете защитить информацию своих пользователей и, возможно, получить дополнительный трафик одним махом.

    Кроме того, Google объявил, что с начала июля 2018 года Chrome будет отображать предупреждение «небезопасно». Так что сейчас самое время усилить безопасность вашего веб-сайта с помощью сертификата SSL, если вы еще этого не сделали.

    Здесь, на Hostinger, мы также поощряем безопасные веб-сайты. Таким образом, мы связываем бесплатный пожизненный SSL-сертификат с планами веб-хостинга Business!

    В наши дни настроить SSL-сертификат WordPress очень просто.Есть несколько типов SSL-сертификатов, но вам, вероятно, не понадобится ничего особенного, если вы не используете большой веб-сайт или не продаете товары в Интернете.

    Для всех других типов веб-сайтов бесплатный сертификат обычно подойдет. Более того, вы можете легко настроить его для работы с Hostinger.

    Что такое HTTPS (и как он работает вместе с SSL)

    Когда вы настраиваете сертификат SSL для своего веб-сайта, вам также необходимо настроить его для передачи данных с использованием защищенного протокола передачи гипертекста (HTTPS).Каждый сайт, который вы посещаете, использует HTTP или HTTPS в качестве префикса для своего полного URL, включая Hostinger:

    .

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

    Если вы попытаетесь получить доступ к сайту без SSL с помощью HTTPS, вы увидите ошибку, подобную этой:

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

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

    Как настроить WordPress для использования SSL и HTTPS (2 метода)

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

    1. Используйте панель управления WordPress и 301 редирект

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

    В любом случае, первым делом нужно перейти на панель управления и открыть вкладку Настройки ›Общие .Внутри вы найдете два поля: Адрес WordPress (URL) и Адрес сайта (URL) . Адрес вашего веб-сайта должен быть одинаковым на обоих и использовать протокол HTTP.

    Вам нужно заменить префикс HTTP на HTTPS в обоих полях и сохранить изменения в своих настройках:

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

    Есть много типов переадресации, которые вы можете использовать. Однако, как правило, лучше всего использовать переадресацию 301, которая сообщает поисковым системам, что ваш веб-сайт постоянно перемещается с одного адреса на другой. Чтобы реализовать это перенаправление, вам необходимо отредактировать файл с именем .htaccess , который определяет, как ваш сервер взаимодействует с WordPress, а также его структуру URL.

    Это потребует от вас прямого доступа к файлам вашего сайта с помощью инструмента протокола передачи файлов (FTP), такого как FileZilla. Если вы делаете это впервые, вы можете найти все подробности в нашем руководстве по FTP.

    После подключения к своему веб-сайту через FTP перейдите в папку public_html и найдите файл .htaccess в пределах:

    Выберите этот файл и щелкните его правой кнопкой мыши, затем выберите опцию View / Edit . Это откроет файл с помощью вашего локального текстового редактора, что позволит вам внести в него изменения.(. *) $ https://www.yoursite.com/$1 [R, L]

    Чтобы это сработало, вам нужно заменить URL-адрес заполнителя в этом коде полным HTTPS-адресом вашего веб-сайта. Это перенаправит любое соединение, которое проходит через порт 80, на ваш новый безопасный URL-адрес. Как вы, возможно, знаете, порт 80 используется по умолчанию для HTTP-соединений, поэтому он поймает практически любого, кто пытается получить доступ к вашему сайту через старый адрес.

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

    2. Установите плагин WordPress SSL

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

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

    Мы рекомендуем Really Simple SSL, поскольку его очень легко настроить. Все, что вам нужно, это готовый SSL-сертификат WordPress:

    После установки и включения плагина он просканирует ваш сайт на предмет наличия SSL-сертификата WordPress. (.index \ .php $ — [L] RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule. /index.php [L]

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

    Если вы настроили свой веб-сайт на использование HTTPS через плагин, вам не нужно настраивать .htaccess вручную. Вместо этого большинство плагинов предложат альтернативное решение. Например, Really Simple SSL может сканировать ваш сайт на предмет файлов, не загружаемых через HTTPS, и помочь вам исправить их. Чтобы использовать эту функцию, перейдите на вкладку «Настройки »> «SSL », а затем перейдите на страницу «Настройки » плагина :

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

    2. Ваш плагин кэширования WordPress вызывает проблемы

    Если у вас установлен плагин кэширования WordPress, ваш браузер может попытаться загрузить кешированную версию вашего сайта через HTTP, что может привести к некоторым ошибкам. Самый быстрый способ решить эту проблему — очистить кеш WordPress.

    Способ работы этого процесса будет зависеть от того, какой плагин кэширования вы используете.Однако это не должно занять у вас больше нескольких минут. Для получения дополнительной информации вы можете ознакомиться с нашим руководством о том, как очистить кеш WordPress в WP Super Cache, W3 Total Cache и WP Fastest Cache. Если вы используете другой подключаемый модуль кеширования, возможно, вам придется проверить его документацию, чтобы узнать, как действовать дальше.

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

    Заключение

    Раньше SSL-сертификаты WordPress были зарезервированы для бизнес-сайтов, которые имели дело с большим количеством конфиденциальной информации.В наши дни сертификаты SSL и HTTPS стали обычным явлением. Фактически, поисковые системы, такие как Google, поощряют вас использовать их. К счастью, как вы уже видели, внедрение SSL и принуждение вашего сайта WordPress к использованию HTTPS не является сложной задачей.

    У вас есть вопросы о том, как использовать WordPress SSL и HTTPS? Давайте поговорим о них в разделе комментариев ниже!

    Уилл Моррис — штатный автор WordCandy. Когда он не пишет о WordPress, ему нравится устраивать выступления на местных концертах.

    Как настроить WordPress для постоянного использования SSL

    В этой статье описывается, как настроить сайт WordPress на постоянное использование безопасных (SSL) соединений.

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

    Включение SSL для WordPress

    Чтобы включить SSL для WordPress, необходимо обновить две настройки URL.Для этого используйте один из следующих методов:

    • Воспользуйтесь административным интерфейсом WordPress.
    • Используйте phpMyAdmin для непосредственного обновления базы данных. Вам может потребоваться использовать этот метод, если вы не можете получить доступ к интерфейсу администрирования WordPress.
    Метод № 1. Используйте интерфейс администрирования WordPress

    Чтобы использовать интерфейс администрирования для обновления настроек URL-адреса WordPress, выполните следующие действия:

    1. Войдите в WordPress как администратор.
    2. В меню слева щелкните Параметры, а затем щелкните Общие.
    3. В разделе «Общие настройки» в текстовом поле «Адрес WordPress (URL)» замените текущий URL на безопасный. Например, введите https: // www. example.com , где example.com представляет ваше доменное имя.
      • Убедитесь, что вы ввели правильный URL, иначе ваша установка WordPress будет недоступна.
      • Убедитесь, что URL-адрес начинается с https: // .
      • Убедитесь, что URL-адрес не заканчивается косой чертой (/).
    4. В текстовом поле Адрес сайта (URL) замените текущий URL на безопасный URL. Например, введите https: // www. example.com , где example.com представляет ваше доменное имя.

      • Как и в шаге 3, убедитесь, что вы ввели правильный URL, иначе ваша установка WordPress будет недоступна.
      • Убедитесь, что URL-адрес начинается с https: // .
      • Убедитесь, что URL-адрес не заканчивается косой чертой (/).
    5. Нажмите «Сохранить изменения».
    Метод № 2: Используйте phpMyAdmin

    Чтобы использовать phpMyAdmin для обновления настроек URL-адреса WordPress, выполните следующие действия:

    1. Войдите в cPanel. Если вы не знаете, как войти в свою учетную запись cPanel, прочтите эту статью.
    2. В разделе «Базы данных» на главном экране cPanel щелкните phpMyAdmin.
    3. На левой панели phpMyAdmin щелкните базу данных WordPress. Появится список таблиц в базе данных.

      Обычно база данных WordPress — это имя пользователя _wp XXX , где имя пользователя представляет ваше имя пользователя cPanel, а XXX — трехзначное число.

    4. Под заголовком Таблица щелкните таблицу wp_options. Появится список строк данных.
    5. Под заголовком option_name найдите siteurl и нажмите Edit.
    6. В текстовом поле option_value замените текущий URL на безопасный URL. Например, введите https: // www. example.com , где example.com представляет ваше доменное имя.
      • Убедитесь, что вы ввели правильный URL, иначе ваша установка WordPress будет недоступна.
      • Убедитесь, что URL-адрес начинается с https: // .
      • Убедитесь, что URL-адрес не заканчивается косой чертой (/).
    7. Щелкните Go. phpMyAdmin сохраняет изменения в таблице.
    8. Под заголовком option_name найдите дом и нажмите Edit.

      Возможно, вам придется пролистать более одной страницы данных в таблице wp_options , чтобы найти строку home . Для этого щелкните значок> или щелкните Показать все, чтобы просмотреть все строки таблицы одновременно.

    9. В текстовом поле option_value замените текущий URL на безопасный URL. Например, введите https: // www. example.com , где example.com представляет ваше доменное имя.

      • Как и в шаге 6, убедитесь, что вы ввели правильный URL, иначе ваша установка WordPress будет недоступна.
      • Убедитесь, что URL-адрес начинается с https: // .
      • Убедитесь, что URL-адрес не заканчивается косой чертой (/).
    10. Щелкните Go. phpMyAdmin сохраняет изменения в таблице. WordPress теперь должен использовать безопасный URL-адрес https: // .
    Дополнительная информация

    Для получения дополнительной информации об использовании SSL с WordPress посетите https://make.wordpress.org/support/user-manual/web-publishing/https-for-wordpress.

    Окончательное руководство по добавлению поддержки HTTPS в WordPress

    Почему HTTPS и SSL имеют значение

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

    Это срочно, так как более половины онлайн-организаций сообщают, что сейчас они становятся мишенью больше, чем когда-либо прежде.

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

    Хотя WordPress — фантастическая система управления контентом, его веб-сайты не защищены с самого начала с помощью HTTPS-соединений. Существуют некоторые службы веб-хостинга, такие как Bluehost, которые предоставляют бесплатные сертификаты SSL, необходимые для принудительного использования HTTPS в WordPress, но даже с бесплатными сертификатами все равно требуются некоторые дополнительные шаги, чтобы все настроить.

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

    Краткое определение HTTPS

    HTTPS — это комбинация Интернет-подключений по протоколу передачи гипертекста (HTTP) и мер безопасности Secure Sockets Layer (SSL).

    Хотя для подключения любого пользователя к веб-сайту требуется HTTP-соединение без SSL, защита данных отсутствует. Это означает, что хакерам и вредоносным программам легче украсть личную информацию, такую ​​как пароли пользователей или финансовую информацию.

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

    Служба установки подключаемых модулей HTTPS

    Прежде чем мы начнем, важно отметить, что CreativeMinds предоставляет подключаемые модули и услуги установки WordPress.

    Вы можете найти всю информацию ниже, но если технические шаги вас не устраивают, свяжитесь с нами, и мы сможем помочь!

    Подробнее: Служба установки плагинов для WordPress от CreativeMinds.

    Как добавить SSL HTTPS на сайт WordPress

    Шаг 1. Получение сертификата SSL

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

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

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

    Плагин

    генерирует бесплатный сертификат для вас

    Плагин Force HTTPS генерирует бесплатный сертификат от Let’s Encrypt. Перейдите на вкладку «Сертификат» и сгенерируйте бесплатный сертификат одним щелчком мыши!

    Шаг 2) Установка SSL-сертификата в WordPress

    Независимо от того, какой центр сертификации вы используете, следующие шаги зависят от того, есть ли у вас доступ через защищенную оболочку (или SSH) к вашему веб-хосту.Имея доступ по SSH, веб-менеджеры могут завершить установку сертификата с помощью такого клиента, как Certbot. Однако наиболее распространенные варианты хостинга веб-сайтов WordPress структурированы таким образом, что у пользователей не будет такого доступа.

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

    Таким образом, в случае неудачного случая, когда что-то пойдет не так, вы сможете безопасно восстановить свой веб-сайт до его прежнего неповрежденного состояния.

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

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

    Здесь вы можете найти решение WordPress HTTPS, которое автоматически перенаправляет ваш URL-адрес HTTP на защищенный HTTPS после покупки сертификата SSL.

    Шаг 3) Два способа принудительного подключения HTTPS для WordPress

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

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

    Easy Way — Форсировать HTTPS WordPress с помощью плагина

    Без сомнения, самый простой и понятный метод форсирования HTTPS для WordPress — через плагин WordPress.

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

    Надежным вариантом является плагин WordPress HTTPS SSL.

    Этот плагин Force HTTPS выполняет все шаги по установке, описанные выше, и многое другое для защиты баз данных веб-сайтов. Например, включены как сквозной трекер статуса SSL, так и встроенный сканер, который обнаруживает ошибки смешанного содержимого.Плагин

    WordPress HTTPS SSL Автоматическое перенаправление с HTTP на HTTPS. Сгенерируйте бесплатный SSL-сертификат от доверенной службы Let’s Encrypt и заставьте весь ваш веб-сайт поддерживать SSL. [Видео] [Userguide]

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

    Плагин также работает на нескольких веб-сайтах, делая безопасность HTTPS простой, независимо от того, сколькими из них вы управляете.

    Hard Way — вручную настроить HTTPS WordPress, шаг за шагом
    1. Заменить URL-адрес в настройках сайта

    Перейдите на страницу «Настройки»> «Общие» вашего веб-сайта и в разделе «Общие настройки» замените там URL-адреса — как адрес WordPress, так и адрес сайта — с обновленным адресом HTTPS, полученным с помощью вашего сертификата SSL.

    Затем нажмите «Сохранить изменения», и WordPress автоматически выйдет из системы. Если вы попытаетесь снова войти в систему на этом этапе, вы получите ошибку загрузки.(. *) $ https: //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301]

    Для немногих веб-сайтов WordPress, которые используют серверы nginx, эти пять строк кода должны быть добавлен взамен.

    сервер {

    слушать 80;

    имя_сервера example.com www.example.com;

    возврат 301 https: //example.com$request_uri;

    }

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

    3. Исправьте ошибки смешанного содержимого

    Теперь пришло время найти и исправить ошибки смешанного содержимого.

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

    Три основных места для проверки — это ваша база данных WordPress, тема WordPress и плагины WordPress. Чтобы исправить ошибки, каждое упоминание URL-адреса вашего старого веб-сайта должно быть найдено в его базе данных, а затем заменено новым URL-адресом HTTPS.

    4. Добавьте ресурс в Google Search Console

    Наконец, для оптимизации SEO необходимо уведомить Google о том, что ваш веб-сайт переключился с HTTP-соединения на HTTPS.

    Для этого перейдите в свою учетную запись Google Search Console и нажмите «Добавить свойство».Затем введите свой новый адрес HTTPS в представленное поле и выберите вариант подтверждения, чтобы подтвердить право собственности на свой веб-сайт.

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

    HTTPS Альтернативные плагины WordPress

    Если вы заинтересованы в использовании другого программного обеспечения, вот четыре дополнительных плагина WordPress SSL и HTTPS и способы их использования.

    1. Really Simple SSL

    Really Simple SSL направлен на то, чтобы сделать SSL простым с минимальными параметрами и возможностью включить SSL одним щелчком мыши.После включения этот плагин переводит весь ваш сайт на SSL. Все входящие запросы перенаправляются на HTTPS.

    Версия Pro этого подключаемого модуля включает поддержку смешанного содержимого, возможность включения HTTP Strict Transport Security и более подробные отзывы.


    2. WP Force SSL

    WP Force SSL — это базовый плагин, который перенаправляет все страницы сайта WordPress с HTTP на HTTPS. В нем нет расширенных возможностей некоторых других плагинов.

    Примечание. С помощью этого плагина пользователям необходимо будет добавить https в параметры адреса (URL) WordPress и адреса сайта (URL) в разделе «Общие»> «Настройки».


    3. Плагин Easy HTTPS Redirection

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

    p> Одной из особенностей этого плагина является то, что он автоматически перенаправляет для всего домена веб-сайта, или администратор может выбрать автоматическое перенаправление только для нескольких определенных страниц.Кроме того, администратор может принудительно загружать статические файлы, такие как изображения, через безопасное соединение.

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


    4. Плагин SSL Zen

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

    Обратной стороной является ограничение: вы можете применить только сертификат от LetsEncrypt, который действителен в течение 90 дней. Кроме того, хотя интерфейс действительно прост, он по-прежнему требует от пользователя загрузки файлов на сервер, как обычно в более сложных установках.


    5. One Click SSL

    Удачно названный плагин One Click SSL обещает перенаправить все страницы без SSL на SSL, одновременно обеспечивая загрузку ресурсов через SSL.

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

    Его простота также является недостатком: по сравнению с другими вариантами этот плагин SSL является базовым.


    6. Verve SSL

    Verve SSL выделяется тем, что позволяет применять SSL только во время входа в систему.

    Установка проходит плавно и, как бонус, никаких изменений в WP-Config.php обязательны.

    В качестве недостатка были сообщения о конфликте с WooCommerce.


    7. WC SSL Seal

    Ориентированный на WooCommerce, WC SSL Seal может быть большим преимуществом, если ваш веб-сайт использует плагин электронной коммерции. Обратите внимание, однако, что функция этого плагина показывает только «безопасную печать», а не реализует SSL.

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

    Как добавить SSL и HTTPS в WordPress (за 3 шага)

    Сделайте безопасность приоритетом

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

    Кроме того, начиная с июля 2018 года, Google Chrome 68 будет отмечать все HTTP-сайты как «Небезопасные». Даже если у вас есть только простой блог или сайт с онлайн-брошюрами, вам понадобится HTTPS, чтобы предотвратить отображение сообщения «Небезопасно» для посетителей сайта.

    К счастью, существуют такие технологии, как Secure Sockets Layer (SSL) и Hyper Text Transfer Protocol Secure (HTTPS), для защиты данных, вводимых в браузер, при их передаче от сервера к серверу. Эти технологии могут быть сложными внутри, но их легко реализовать пользователями WordPress.

    Не знаете, как добавить SSL и HTTPS в WordPress? Продолжай читать.

    Введение в протокол защищенных сокетов (SSL) и HTTPS

    Зеленый замок — ключевой индикатор зашифрованного сайта.

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

    У этих двух технологий разные роли:

    1. SSL: Это протокол, обеспечивающий безопасность связи по сети.
    2. HTTPS: По сути, это защищенная версия HTTP, которая обеспечивает аутентификацию для веб-сайта и связанного с ним сервера.

    Однако одно без другого невозможно. Это означает, что как только они будут реализованы, данные, передаваемые между серверами, будут максимально защищены.

    Как добавить SSL в WordPress и реализовать HTTPS

    Несмотря на то, что это сложные протоколы, использование Secure Sockets Layer и Hyper Text Transfer Protocol Secure на вашем сайте с годами стало намного проще.Практически каждый может узнать, как добавить SSL и HTTPS в WordPress в наши дни. Просто выполните три шага, описанных ниже, и вы сразу же приступите к работе.

    Шаг 1. Выберите подходящий SSL-сертификат

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

    • Проверка домена (DV): Этот сертификат просто подтверждает, что вы являетесь владельцем домена.
    • Проверка организации (OV): Наряду с проверкой домена этот сертификат также доказывает, что ваша организация является законной.
    • Extended Validation (EV): С этим сертификатом вы предлагаете своим клиентам высочайший уровень безопасности. Все кандидаты должны пройти строгую проверку.

    В целом, чем более конфиденциальны данные, которые вы обрабатываете, тем более высокий уровень безопасности потребуется для их защиты. Однако имейте в виду, что более высокий уровень безопасности требует дополнительных затрат.Требуемый уровень зависит от вас, но мы рекомендуем, если вы имеете дело с банковскими данными клиентов, использование чего-либо, кроме сертификата EV SSL, было бы рискованным.

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

    Шаг 2: Создайте запрос на подпись сертификата (CSR)

    Для проверки вашего веб-сайта, компании и сервера вам понадобится запрос на подпись сертификата (CSR).Короче говоря, это определяет сервер и домены, с которыми вы будете использовать свой сертификат.

    Инструкции различаются в зависимости от сервера, который вы используете, но обычно вам необходимо:

    1. Подключитесь к серверу через Secure Shell (SSH).
    2. Запустите консольную команду.
    3. Введите свой URL-адрес и сведения о компании.
    4. Скопируйте и вставьте текст в область запроса SSL вашего аккаунта.

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

    Шаг 3. Настройте WordPress для использования SSL и HTTPS.

    Последний шаг — настроить WordPress для использования SSL и HTTPS. Сначала перейдите в панель управления WordPress и перейдите в Настройки > Общие . Прокрутите вниз до полей WordPress Address (URL) и Site Address (URL) и замените http: // на https: // :

    .

    После сохранения изменений все готово.Однако, если вы внедряете SSL на своем существующем сайте, вам также потребуется внести изменения в файл . (.*) $ https://www.yoursite.com/$1 [R, L]

    Убедитесь, что вы заменили yoursite.com URL-адресом вашего сайта и сохраните изменения. На этом этапе ваш сайт должен быть зашифрован, но перейдите к своему интерфейсу и проверьте панель браузера, чтобы убедиться.

    Наконец, возможно, ваш сайт может считаться браузером «частично защищенным». Это обычная проблема для сайтов WordPress, использующих сторонние сертификаты. Хорошей новостью является то, что вы можете использовать плагин, например Really Simple SSL, чтобы быстро решить эту проблему.

    Если SEO вызывает беспокойство, вы можете просмотреть удобный контрольный список SSL, предоставленный Search Engine Land, в котором подробно описаны дополнительные проверки, которые вы можете выполнить, чтобы убедиться, что на вашем веб-сайте WordPress реализован SSL с учетом SEO. Этот контрольный список обеспечит некоторые дополнительные меры безопасности, которые помогут убедиться, что на вашем веб-сайте или в блоге обновляются все внутренние ссылки и карты сайта в соответствии с поисковой оптимизацией.

    Когда дело доходит до вашего веб-сайта, безопасность ваших пользователей должна быть главным приоритетом. Более того, влиятельные компании, такие как Google и сама WordPress, настаивают на том, чтобы все сайты защищали данные, которые они обрабатывают.Это означает, что вам нужно узнать, как добавить SSL и HTTPS в WordPress, и сразу же внести изменения.

    Автор изображения: Michał GrosickionUnsplash

    Настройка WordPress для постоянного использования HTTPS / SSL


    Да, вам следует использовать SSL.

    Настройка вашего сайта с помощью SSL-сертификата для обслуживания страниц через HTTPS не делает вас на 100% защищенным от всех видов атак, которые могут случиться с веб-сайтом, , но это следует делать почти на каждом сайте с использованием платного членства Pro .

    Использование сертификата SSL требуется Советом по стандартам безопасности PCI на любом сайте, принимающем кредитные карты [подробнее], и требуется большинством шлюзов , даже если оформление заказа выполняется «вне офиса» .

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

    Шаг 0. Сделайте резервную копию всего

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

    Подробнее о резервных копиях сайта

    Шаг 1. Получите сертификат SSL

    Краткое примечание: когда мы говорим о «SSL-сертификатах» в этом посте, мы имеем в виду именно «сторонний» SSL-сертификат.Это сертификаты, которые проверены доверенной третьей стороной. Вы также можете использовать так называемые «самоподписанные» SSL-сертификаты или «общие» SSL-сертификаты, но только сторонний SSL-сертификат позволит избежать всех предупреждений браузера и выполнить все требования к шлюзам / PCI, связанным с SSL.


    Самый простой способ приобрести и установить сертификат SSL — попросить ваш веб-хостинг сделать это за вас.


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

    Если вы управляете собственным сервером или хотите сделать это самостоятельно, у вас есть несколько вариантов.


    1а. Создание сертификата SSL Let’s Encrypt

    В 2016 году был представлен новый (и бесплатный) способ получения сертификатов SSL от третьих лиц под названием Let’s Encrypt. На странице о Let’s Encrypt:

    Let’s Encrypt — это бесплатный, автоматизированный и открытый центр сертификации (ЦС), работающий на благо общества.Это услуга, предоставляемая исследовательской группой Internet Security Research Group (ISRG).

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

    Многие веб-хосты начинают предлагать SSL-сертификаты Let’s Encrypt бесплатно или по сниженной цене. Если ваш хост поддерживает Let’s Encrypt, спросите, настроят ли они для вас сертификат.Если ваш хост не настраивает его, но у вас есть SSH-доступ к вашему веб-серверу (типично для выделенных планов хостинга или хостинга на уровне VPS), вы можете самостоятельно сгенерировать сертификат и настроить свой веб-сервер для его использования.



    Домашняя страница Certbot позволяет вам выбрать программное обеспечение вашего веб-сервера (например, Apache) и операционную систему вашего сервера (например, Ubuntu Linux), а также предоставит вам инструкции по использованию Certbot для настройки Let’s Encrypt SSL. Вот несколько инструкций по использованию Certbot с Apache в Ubuntu 16.10:

    1. Убедитесь, что ваш веб-сервер настроен с поддержкой SSL. Для Apache модуль называется mod_ssl. В последних версиях Ubuntu вы можете включить это, введя в командную строку следующее: (перезапустите Apache, когда закончите)

      Если это не сработает, вы захотите поговорить со своим хостом или поискать в их документации «включение mod_ssl» для Apache ».

    2. Во-вторых, используйте apt-get для установки Certbot:
       $ sudo apt-get install python-certbot-apache 

      $ sudo apt-get install python-certbot-apache

    3. Третий, сгенерируйте сертификат.(По моему опыту, Certbot часто не мог правильно настроить Apache после создания сертификата. Поэтому я использовал его только с опцией «certonly». Если вы уверены, вы можете попробовать без этой опции, и он попытается автоматически обновить ваш Конфигурация Apache для использования нового сертификата.)
       $ certbot --apache certonly 

      $ certbot —apache certonly

      После этого ваш терминал должен выглядеть примерно так:

      Не пугайтесь граница случайных букв (я впервые!).Это просто ASCII-представление ограничивающей рамки. Cerbot пытается определить, какие домены установлены на вашем сервере. Если вы видите свой домен, используйте клавиши со стрелками, чтобы выделить его, и нажмите Enter, чтобы проверить его, затем следуйте инструкциям. Если вы не видите домен, для которого хотите получить сертификат, вы можете указать домен в команде Certbot:

       $ certbot --apache certonly --domains yourdomain.com 

      $ certbot — apache certonly —domains yourdomain.com

      Когда Certbot завершит работу, он сгенерирует файлы cert.pem и privkey.pem, обычно в следующих местах:

      • /etc/letsencrypt/live/yourdomain.com/cert.pem
      • / etc / letsencrypt /live/yourdomain.com/privkey.pem
    4. В-четвертых, вам необходимо обновить конфигурацию Apache, чтобы использовать новый сертификат. Точные шаги для этого будут зависеть от вашей настройки Apache, но у вас может быть файл /etc/httpd/conf.d/vhost-ssl.conf, который выглядит как этот или аналогичный код в другом файле конфигурации Apache: (обратите внимание на SSLCertificateFile и Строки SSLCertificateKeyFile.) https://gist.github.com/strangerstudios/eef97f91ec473701d06b582b2972b757

      Это довольно типичная установка Apache. Эта конфигурация говорит об обнаружении трафика, поступающего через порт 443 для хоста yourdomain.com, и перенаправляет этот трафик в папку… / httpdocs /. Это та же папка, что и для порта 80 / обычного HTTP-трафика. Иногда ваш сайт может быть настроен на использование другого каталога для HTTPS-трафика. Если это так, вы можете сделать этот каталог «символьным» связанным с обычным каталогом или обновить свои настройки, как указано выше.В WordPress лучше всего обслуживать трафик HTTP и HTTPS из одного каталога.

    Теперь перезапустите Apache, чтобы новые настройки вступили в силу. Рекомендуется иметь резервные копии файлов конфигурации Apache на случай, если что-то пойдет не так. Затем вы можете переключить свои файлы обратно в резервные копии и перезапустить Apache, чтобы ваш сайт был исправлен как можно скорее. Найдите ошибку в журналах ошибок Apache (или другого веб-сервера) и посмотрите, что может быть не так.


    Давайте шифруем SSL-сертификаты только для 90 дней.

    Чтобы упростить процесс обновления, вам нужно настроить задание cron для регулярного обновления сертификата. Для этого используется следующая команда:

    Вы можете проверить это следующим образом:

     $ & nbsp; certbot Renew --dry-run 

    $ & nbsp; certbot Renew —dry-run

    И Строка задания cron для ежедневного запуска в 4:17 может выглядеть следующим образом:

     17 & nbsp; 4 * * * certbot Renew --quiet --post-hook "systemctl reload httpd" 

    17 & nbsp; 4 * * * certbot Renew —quiet —post-hook «systemctl reload httpd»


    1b.Приобретите сертификат SSL

    Если у вас нет доступа по SSH к вашему веб-серверу, но у вас есть способ установить сертификаты SSL (например, через панель управления), вы можете приобрести сертификат SSL в «центре сертификации» для использовать на своем сайте. Вы также можете приобрести в центре сертификации, если вам нужен Wildcard SSL, SAN SSL или другой расширенный SSL.

    Иногда может потребоваться сгенерировать запрос на подпись сертификата (CSR). Вам нужно будет подтвердить, что вы управляете доменом через стандартный адрес электронной почты, например webmaster @ yourdomain.com, обновление главной страницы сайта или специальное обновление DNS. После покупки и проверки вам будет предоставлен один или несколько файлов сертификатов для установки сертификата SSL. То, как вы точно установите этот сертификат снова, зависит от вашего хоста и / или программного обеспечения вашей панели управления. На большинстве панелей управления есть простые инструкции, как это сделать.

    Вот место, где вы можете приобрести и загрузить сертификаты SSL:

    • SSL бесплатно (используется Let’s Encrypt. Бесплатно, но должно обновляться вручную каждые 90 дней.)
    • GoDaddy (Дорого, но с множеством опций. Партнерская ссылка.)
    • RapidSSL
    • AlphaSSL (Зарегистрируйтесь в учетной записи реселлера для получения скидок, если вы планируете приобрести много сертификатов для клиентов и т. Д.

    Шаг 2. Сообщите WordPress URL-адрес вашего сайта HTTPS: //…

    После установки сертификата SSL на веб-сервер вы можете проверить его, перейдя по адресу https: // с указанием URL-адреса вашего веб-сайта.

    Если вы получите сообщение об ошибке , то ваша конфигурация Apache, вероятно, неверна.Убедитесь, что у вас установлен mod_ssl , есть действующий сертификат SSL и правильно настроена конфигурация Apache VHOST. См. Примечания выше и уточните у своего хозяина.

    Когда вы посещаете https: // URL-адрес своего сайта, вы можете быть перенаправлены на http: // версию этого URL-адреса. Есть много систем, которые будут пытаться заставить веб-сайт использовать определенную «схему» (HTTP или HTTPS). Например, если в платном членстве Pro включен параметр «Принудительный SSL», он фактически перенаправит на с HTTPS-версии страницы для страниц без оформления заказа.Другие плагины могут выполнять аналогичные перенаправления. Сам WordPress иногда пытается принудительно выполнить «каноническое» перенаправление, чтобы убедиться, что каждая страница вашего сайта имеет ровно один URL (это хорошо для SEO).

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

    Заставить все в WordPress загружать через HTTPS на самом деле довольно просто. Вы просто переходите на страницу «Настройки» -> «Общие» в своем админке, а затем меняете «URL-адрес WordPress» и «URL-адрес сайта», чтобы перед ним был https: // вместо http: //.

    Важное примечание: После внесения этого изменения многое произойдет. Многие вещи могут сломаться. Для начала, вы, , из выйдете из системы. Это связано с тем, что файл cookie, создаваемый при входе в систему, обычно зависит от «версии» HTTP или HTTPS вашей страницы. После обновления WordPress для использования URL-адреса HTTPS вам придется снова войти в систему, чтобы сгенерировать новый файл cookie аутентификации.

    Многие другие вещи могут сломаться, когда ваш сайт будет обновлен до сервера через HTTPS. В шаге 3 мы перебираем самые распространенные из них.


    Шаг 3. Исправьте все, что сломалось

    Здесь мы попытаемся задокументировать некоторые из наиболее распространенных вещей, которые могут сломаться на сайте, обслуживаемом по HTTPS.


    Пользователи по-прежнему могут получить доступ к http: // версии сайта.

    Если ваш сайт настроен для обслуживания всех страниц через HTTPS, вам нужно будет перенаправить URL-адреса http: // на https: //.Есть несколько способов сделать это, но мы рекомендуем добавить правило через ваш веб-сервер.

    Если вы используете Apache, вы можете добавить этот фрагмент, чтобы перенаправить любой HTTP-трафик на https-версию URL-адреса. Обязательно поместите это в строки Rewrite Engine On и Rewrite Base:

    Если вы используете веб-сервер NGINX, вот конфигурация, которую вы можете использовать для перенаправления всего HTTP-трафика на HTTPS на всех хостах. См. Сообщение в блоге Бьёрна Йохансена по этой теме для получения более подробной информации.


    Тайм-аут страницы с ошибками «слишком много перенаправлений».

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


    • Плохие настройки плагина

      Мы уже упоминали, что вам следует отключить опцию «Принудительный SSL» на странице настроек оплаты PMPro, если ваш сайт полностью обслуживается через HTTPS, и PMPro все равно должен это обнаружить.Другие плагины электронной коммерции или плагины входа / перенаправления могут иметь аналогичные функции, которые необходимо отключить.

    • Неверные значения сервера PHP

      Другая распространенная проблема заключается в том, что некоторые хосты или прокси (например, Cloudflare или Sucuri CloudProxy) могут иногда создавать впечатление, что ваш трафик идет по HTTP вместо HTTPS. Это довольно тонко, но в основном WordPress имеет функцию is_ssl (), которая проверяет, установлено ли значение PHP $ _SERVER [‘HTTPS’] на «on». При использовании прокси это значение может быть отключено или вообще не установлено.

      Вот код, который вы можете временно добавить в свой wp-config.php, чтобы проверить значения $ _SERVER, чтобы убедиться, что они настроены правильно. Добавьте этот код в wp-condig.php, а затем перейдите по адресу https: // yoursite.com/?test=1.

      Результат должен быть примерно таким:

      Обратите внимание на значение HTTPS. Если вы загружаете URL-адрес HTTPS, но для этого значения установлено значение «выкл.», «Ложь» или пустое значение. Найдите другое значение, указывающее на используемую схему. Многие прокси устанавливают значение HTTP_X_FORWARDED_PROTO, и вы добавляете этот код в свой файл wp-config.php, чтобы скопировать это значение в HTTPS

    • Плохой код плагина

      Если вы даже не можете войти в администратор, чтобы изменить эту функцию, вы можете отключить плагины один за другим, переименовав папки на сервере в имя плагина -о или что-то подобное. Это скроет его от WP, и этот плагин не загрузится. Если отключение плагина решает проблему, значит, вы знаете, что плагин (по крайней мере частично) виноват в перенаправлении. Вы можете узнать больше о том, как отключить все плагины, когда они заблокированы администратором на WPBeginner здесь.

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

    • Неверные правила перенаправления веб-сервера

      См. Несколько примеров того, как перенаправить весь трафик на URL-адреса HTTPS, в разделе 3а выше.Если этот код перенаправления неверен или в вашей конфигурации есть похожий, но конфликтующий код, могут возникнуть бесконечные циклы перенаправления. Отключите правила перенаправления, чтобы увидеть, исправляет ли это ситуацию. Затем попробуйте придумать правильные правила для того, что вам нужно.


    Ошибки смешанного содержимого

    Когда вы загружаете веб-страницу через HTTPS, ваш веб-браузер блокирует любой контент, связанный через HTTP (незащищенный) URL. WordPress и любые правильно закодированные плагины или темы будут использовать «относительные URL-адреса» или иным образом пытаться определить, использует ли сайт SSL перед выводом URL-адреса, что позволит избежать этой проблемы.Однако, если URL-адрес «жестко закодирован» с начального http: // в сообщениях вашего блога, или в таблице стилей, или в файле JavaScript, или где-то еще… тогда эти URL-адреса будут заблокированы при загрузке страницы по HTTPS.

    Вы можете заметить ошибки смешанного содержания, потому что:

    • Ваша страница может выглядеть странно, поскольку некоторые таблицы стилей, сценарии JavaScript, изображения или другие файлы не загружаются.
    • Зеленый / золотой и т. Д. Висячий замок в верхнем левом углу (или нижнем правом углу) вашего браузера может отображаться красным или желтым вместо зеленого или в виде значка! вместо замка.
    • На панели отладки Chrome / Safari / Firefox / Firebug «Консоль» будут отображаться ошибки.

    В Chrome вы можете просматривать смешанный контент (и другие ошибки) в консоли инструментов отладки, удерживая Ctrl + Shift + J на ​​ПК или Cmd + Option + J на ​​Mac. Другие браузеры имеют аналогичные функции. Это будет выглядеть так:

    Обратите внимание на ошибку «Смешанное содержимое» внизу. В сообщении об ошибке будет указано, какой ресурс / URL-адрес блокируется. Вы можете использовать контекстные подсказки в URL-адресе ресурса, чтобы выяснить, откуда исходит этот неверный URL-адрес.Если файл находится в вашей теме, возможно, проблема в вашей теме. Если файл находится в папке плагина, проблема, вероятно, в этом плагине. Если файл находится в загруженной папке, возможно, он жестко закодирован в содержании публикации. Другая распространенная ситуация — когда настройки темы, например изображение заголовка, сохраняются в параметрах. Некоторые темы и плагины, которые сохраняют такие параметры, сохраняют полный URL. Обычно вы можете очистить и сбросить эти параметры, чтобы сохранить новый URL-адрес HTTPS.

    Есть несколько подключаемых модулей, которые можно использовать для исправления большинства этих проблем со смешанным содержимым. На странице настроек оплаты PMPro вы можете проверить настройку «Дополнительный фильтр URL-адресов HTTPS», и PMPro попытается исправить любые URL-адреса, не относящиеся к HTTPS, которые используются на сайте. Вы также можете попробовать плагин Really Simple SSL или плагин WP Force SSL, которые имеют более сложные методы исправления ошибок смешанного содержимого.

    Если вы по-прежнему видите ошибки даже после активации одного из вышеуказанных плагинов, вам придется исправить их «вручную».Опять же, вы можете связаться с нами на наших форумах для участников или обратиться к разработчику соответствующего плагина или темы, чтобы попытаться исправить проблему со смешанным контентом. Иногда это так же просто, как изменить URL. Иногда ресурс может быть загружен с другого сервера, который вообще не обслуживает файлы по HTTPS. В таких случаях вам нужно прекратить пользоваться этой службой или найти способ обходного пути.


    Резюме

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

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

    Как настроить CloudFlare Flexible SSL для WordPress

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

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

    Настройка бесплатного Cloudflare Flexible SSL

    1. Зарегистрируйтесь в Cloudflare
    2. Выберите бесплатный тариф
    3. Следуйте инструкциям по добавлению вашего доменного имени
    4. Когда вы зарегистрируетесь и настроите свое доменное имя, щелкните свой домен
    5. Вверху будет ряд значков, нажмите Crypto
    6. Первым вариантом будет SSL, выберите гибкий SSL

    Вы запросили гибкий SSL-сертификат у Cloudflare, и на его выдачу обычно уходит около 15 минут.Cloudflare сообщит, что ваш гибкий SSL активен, отобразив зеленое активное поле ниже.

    Подготовка WordPress к использованию гибкого SSL от Cloudflare

    ВАЖНО — В бэкэнде WordPress оставьте свой адрес WordPress (URL) и адрес сайта (URL) как HTTP.

    Затем вам нужно будет установить оба из этих двух плагинов, указанных ниже.

    CloudFlare Гибкий плагин SSL

    Этот плагин необходим для включения гибкого SSL на WordPress и предотвратит бесконечные циклы перенаправления при загрузке сайтов WordPress в системе гибкого SSL CloudFlare.

    CloudFlare Гибкий плагин SSL

    Плагин

    WordPress HTTPS

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

    Плагин WordPress HTTPS

    Настройка параметров плагина HTTPS для WordPress

    1. Зайдите в настройки плагина
    2. Выберите «Да» для настройки прокси.
    3. Сохранить

    Дайте команду CloudFlare доставлять наш контент через HTTPS

    1. Вернуться к Cloudflare
    2. Выберите свой домен
    3. В ряду иконок вверху выберите правила страницы
    4. Включите «всегда использовать HTTP» на
    5. .
    6. Добавьте свое доменное имя в качестве правила страницы между двумя звездочками
    7. Нажмите, чтобы добавить правило

    Измените адрес вашего сайта WordPress (URL)

    Наконец, измените адрес вашего сайта (URL) на «https: //», но убедитесь, что вы оставили адрес (URL) WordPress как «http: //».

    ** ВАЖНО ** Если вы измените свой адрес (URL) WordPress на «https: //», это приведет к поломке вашего сайта. Если вы измените адрес своего сайта (URL) на «https: //», без запущенного плагина Cloudflare Flexible он также сломается.

    Убедитесь, что ваш Cloudflare Flexible SSL работает

    Это должно быть у вас с новым бесплатным гибким SSL-сертификатом Cloudflare. Просто посетите свой веб-сайт в браузере и проверьте, отображается ли зеленый замок в левом верхнем углу адресной строки.

    Соответствующие ссылки

    WordPress SSL Учебное пособие

    Как настроить HTTPS на WordPress Multisite

    Примечание редактора. Эта запись в блоге была обновлена ​​27 июня 2018 г.

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

    Недавно на моем сайте (-ах) работал HTTPS, и я собираюсь поделиться с вами, как он у меня работает (за бесплатно ).

    Что такое HTTPS?

    HTTPS — это просто безопасный уровень протокола HTTP, который мы используем для доступа к веб-сайтам. «S» означает secure и означает, что вся ваша информация на этом сайте и с этого сайта будет зашифрована.Иногда вы видите это:

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

    Зачем мне нужен HTTPS?

    Зачем вам, помимо рейтинга Google, заботиться о безопасности своего сайта? Прежде всего, начиная с Google Chrome 68 (выходящего в июле 2018 г.) все веб-сайты ОБЯЗАТЕЛЬНЫ для использования HTTPS.

    Если вы используете на своем сайте электронную коммерцию, вам необходимо обеспечить безопасные платежи. Возможно, вы можете обойти это, используя службу или платформу, которая снимает транзакционную часть процесса покупок с вашего сайта (например, PayPal), но это может раздражать пользователя. Также вызывает доверие у ваших клиентов вид зеленого замка на вашем сайте; они знают, что могут доверять вам свой бизнес , даже если вы, , отправляете их третьей стороне для транзакции и не храните какую-либо личную информацию локально.

    Но даже если вы не продаете вещи на своем сайте, вы должны все же позаботиться о безопасности своего сайта. Недавно было обнаружено, что АНБ хранит огромные объемы данных, собранных в результате обычного использования Интернета такими людьми, как вы и я. Незашифрованные сайты означают, что они могут легко получить эти данные, а также любую дополнительную информацию / данные, отправленные на этот незашифрованный сайт или с него. Хотя шифрование вашего сайта не может быть надежным способом предотвратить слежку за вами АНБ, это не повредит и, по крайней мере, может затруднить им доступ к вашим данным.

    Хорошо, что мне нужно делать?

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

    стоят от 5 до 500 долларов в зависимости от того, где вы их получаете и что они делают. Я не эксперт, поэтому даже не могу сказать вам разницы. Во многих случаях вы можете просто связаться с вашим хостом для получения сертификата безопасности и позволить им настроить его для вас, а затем изменить свои URL-адреса в WordPress.

    Но я сделал не это.

    Некоторое время назад (фактически, вскоре после анонса Google) Cloudflare объявила, что будет предлагать бесплатных SSL всем пользователям Cloudflare, в том числе тем (вроде меня) по их бесплатным тарифным планам.Для тех из вас, кто не знаком с сервисом Cloudflare: это DNS-сервис, который, помимо прочего, позволяет вам управлять всеми своими доменами через их серверы имен. В дополнение к этому они добавляют некоторые дополнительные улучшения безопасности и повышения скорости, такие как кеширование, когда вы используете их сервис.

    Вместо белого экрана, если ваш сервер выйдет из строя, ваши пользователи получат либо сообщение в верхней части страницы о том, что они просматривают кешированную версию страницы, либо страницу с ошибкой Cloudflare, в которой говорится о проблеме с подключением к сервер и кешированная версия страницы не найдены (это немного приятнее для ваших пользователей, чем сообщение об ошибке внутреннего сервера на белой странице).Мне уже много лет нравится бесплатный сервис Cloudflare, потому что мне нравится управлять всеми своими доменами в одном месте. Наличие сторонней службы, управляющей моими серверами имен, также означает, что если я переключу веб-хосты, у меня будет только одно место, чтобы внести изменения в серверы имен (вместо того, чтобы обращаться к разным регистраторам доменов для изменения каждого из них по отдельности).

    Поскольку я уже использовал Cloudflare, использовать универсальный SSL Cloudflare было несложно, и, фактически, когда я однажды протестировал его по прихоти — просто поставив https перед своим доменным именем — я был шокирован, увидев что реально работало !

    Ладно, действительно не сработало .Были части страницы, которые были сломаны и не отображались правильно, но тот факт, что на ней вообще что-то отображалось, а не просто сообщение об ошибке, в котором говорилось, что безопасное соединение не может быть установлено, вселило в меня надежду и отправило меня по пути для установки до SSL на моем (мульти) сайте.

    (Примечание. Бесплатные SSL-сертификаты Cloudflare содержат несколько доменов, поэтому возможно, что некоторые из этих сайтов могут не относиться к сайтам, с которыми вы хотите связывать свой сайт, особенно если вы делаете это для бизнеса или корпоративного сайта.В этом руководстве предполагается, что вы похожи на меня и просто хотите настроить его для личного использования. Cloudflare активен в Твиттере, и вы всегда можете связаться с их службой поддержки, если у вас есть конкретные вопросы или проблемы.)

    Для этого рецепта вам понадобятся следующие ингредиенты:

    • Аккаунт на Cloudflare. Получите один бесплатно, если у вас его еще нет.
    • Сайт на WordPress. Я буду использовать свой мультисайт в качестве примера.
    • (возможно, необязательно) WordPress HTTPS — плагин, который заставляет HTTPS-ссылки на вашем сайте (ах).
    • (возможно, необязательно, если вам нужны сопоставленные домены) WordPress MU Domain Mapping — используется для простого сопоставления пользовательских доменов с конкретными сайтами на вашем мультисайте.

    Я предполагаю, что у вас есть первые две вещи — учетная запись Cloudflare и установка WordPress. Если у вас настроены обе эти вещи и вы просто добавляете https перед своим доменом, вы, вероятно, получите что-то ужасное, вроде этого:

    OMG WTF!

    Это связано с тем, что, как я упоминал ранее, на странице есть незашифрованные элементы.Существуют iFrames, обслуживающие незашифрованные видеофайлы, а также таблицы стилей и Javascript, обслуживаемые по протоколу http вместо https. Все это может привести к тому, что вам захочется плакать и выколоть глаза.

    Вот где появляется WordPress HTTPS. По сути, WordPress HTTPS заставляет его так, чтобы в любом месте страницы, где есть «http: //», он заменялся на «https: //». Каждый javascript, каждая таблица стилей, каждая ссылка, все что угодно. Это намного проще, чем пытаться отследить каждый отдельный незашифрованный элемент на вашей странице и исправить его индивидуально (что я видел предложенным, когда работал над этим).

    На Multisite вы можете активировать по сети HTTPS WordPress, и в вашем сетевом администраторе появится такой экран:

    Здесь перечислены все сайты в моей сети, а также их хосты SSL (в данном случае все мои сертификаты являются «самообслуживанием», то есть хост — это просто ваш обычный корневой домен) и пара флажков. для некоторых глобальных настроек.

    В частности, я принудительно использую SSL в админке (это заменяет define ('FORCE_SSL_ADMIN', true) , который вы можете определить в своем wp-config.php — подробнее об этом в Кодексе), и я удаляю со страницы небезопасные элементы. Это предотвращает появление небезопасных элементов из-за того, что страница не может быть сломана или замочен незеленый; все, что он не может исправить явным образом, он просто упадет, чтобы вы могли разобраться с этим позже, а тем временем быстро настроить и запустить свой 100% безопасный сайт.

    Если на вашем мультисайте есть сайты, которые вас не интересуют или которые вы хотите использовать по HTTPS, вы можете просто принудительно использовать SSL в админке или просто не отмечать их.

    В администраторе каждого сайта у меня есть дополнительные, детальные средства управления обработкой HTTPS для этого сайта:

    Здесь вы можете видеть, что те же самые настройки из экрана Network Admin, Force SSL Admin и Remove Unsecure Elements, повторяются, и отсюда вы можете переопределить их, если хотите.Он также автоматически сопоставляет URL-адреса ShareThis и Gravatar с их безопасными аналогами, и вы можете использовать их в качестве шаблонов для сопоставления ваших собственных доменов, если и когда вы сталкиваетесь с элементами, которые не являются безопасными (но могут находиться на другом / измененном URL-адресе, а не в просто https: // версия существующего URL). Если вы действительно хотите пофантазировать, вы можете создать фильтры, чтобы определенные части вашего сайта были защищены, а другие части — нет.

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

    Теперь есть еще одна часть этого — компонент сопоставления доменов. У Отто есть отличный пост о сопоставлении доменов WordPress MU, и он освещает его гораздо лучше, чем я. Если вы сопоставляете пользовательские домены со своим мультисайтом WordPress, я рекомендую сначала проверить его сообщение. Сообщение немного старовато, но мало что изменилось с момента его написания.

    Domain Mapping позволяет на моем Multisite редактировать полный URL-адрес домена и сопоставлять его с определенным идентификатором сайта. Я могу сделать это с обычного экрана Multisite Edit Site, но мне также нужно сделать это со страницы Domain Mapping Domains.Однако, если вы используете сопоставление доменов, вы, , по-прежнему не можете изменять http / https часть URL-адреса.

    Это необходимо сделать во вкладке «Настройки сайта»:

    Это нормально работает для моих дочерних сайтов, но эти поля недоступны для редактирования для моего основного сайта.

    В этом случае у вас есть несколько вариантов:

    1) Не используйте SSL на своем основном сайте или просто принудительно используйте его для администратора (это может доставить вам некоторые головные боли, поскольку WordPress по-прежнему будет искать пути http для элементов в админке).

    2) Не настраивайте Multisite до , после вы настроите SSL (возможно, идеально, но не всегда возможно).

    3) (╯ ° □ °) ╯︵ ┻━┻ сдаться

    4) Взломайте вашу базу данных.

    Как бы страшно ни звучал последний вариант, и как бы легко это ни было сломать, я предлагаю именно это. Пока вы входите в это с пониманием того, что что-то может сломаться, и с планом резервного копирования, если это произойдет (вернитесь и исправьте что-то в БД, которую вы изменили, или восстановите резервную копию), это не должно быть так страшно.

    Для этого сначала сделайте РЕЗЕРВНОЕ КОПИРОВАНИЕ БАЗЫ ДАННЫХ.

    Серьезно, сделайте резервную копию. Фактически, поддерживает его сейчас , пока вы об этом думаете.

    Теперь вам понадобится доступ к phpMyAdmin с вашего хоста или плагина Adminer для WordPress.

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

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