Как установить SSL-сертификат Let’s Encrypt на сайт WordPress

34 комментариев

Введение

Если в данный момент ваш сайт работает по небезопасному протоколу HTTP, то, скорее всего, вы уже задумались о переходе на HTTPS-протокол. Что такое HTTPS? Если кратко, то это специальное расширение протокола HTTP, которое обеспечивает безопасность передаваемых данных путем их шифрования. В первую очередь это необходимо для всех ресурсов, которые имеют дело с данными своих пользователей – интернет-магазинов, бирж и других веб-сайтов. Однако в последнее время все больше пользователей стремятся установить SSL-сертификат на свой сайт – даже если это персональный блог или рекламный лендинг. Дело в том, что работа по HTTPS-протоколу влияет на множество различных факторов, в том числе на позицию вашего ресурса в поисковой выдаче и доверие пользователей к вашему сайту в целом. В будущем различия между двумя вариантами протокола передачи данных станут еще более заметными. К примеру, корпорация Google уже объявила, что если на сайте можно ввести персональные данные (пароль или номер банковской карты), но при этом он работает по HTTP-протоколу, то с начала 2017 года он будет отмечаться в браузере Google Chrome как небезопасный. И уже сейчас известно, что сайты с установленным SSL-сертификатом воспринимаются поисковыми системами как более доверительные, поэтому в выдаче они занимают более высокие места, чем сайты без сертификатов.

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

Выбор сертификата

Для начала вам необходимо определиться, какой сертификат вы будете использовать на своем сайте. Главные критерии, от которых следует отталкиваться при выборе сертификата, - это цели его установки и располагаемый бюджет. На хостинге Timeweb представлено несколько возможных вариантов сертификатов; более подробно о них вы можете прочитать в статье «Comodo Positive SSL и Let’s Encrypt: плюсы и минусы». Что касается самой установки, то принципиальной разницы между ними нет: Comodo Positive SSL требует чуть больше информации о пользователе, в то время как при заказе Let’s Encrypt вам необходимо только выбрать сайт, на который будет установлен сертификат.

Т.к. Let’s Encrypt является бесплатным, то и время для его установки совсем небольшое – обычно оно составляет порядка 10-15 минут. Для установки Comodo Positive SSL понадобится подождать около 1-2 часов.

В данной статье в качестве примера будет рассказано о том, как установить на свой сайт сертификат Let’s Encrypt.

Заказ и установка сертификата

1. Для того, чтобы заказать сертификат, войдите в панель управления своим аккаунтом Timeweb и выберите раздел «Дополнительные услуги», а затем нажмите на кнопку «SSL-сертификат»:

Как установить SSL-сертификат Let’s Encrypt на сайт WordPress

2. В появившемся окне выберите желаемый сертификат (в нашем случае Let’s Encrypt), домен, для которого вы заказываете данный сертификат, и подтвердите то, что вы согласны с правилами предоставления данной услуги.

(Если вы выбрали один из сертификатов Comodo Positive SSL, то вы должны заполнить все поля анкеты.)

Сертификат Comodo Positive SSLЕсли все выполнено корректно, вы увидите следующее уведомление:

SSL3. Через некоторое время вам придет письмо с уведомлением о том, что SSL-сертификат был выпущен и установлен:

SSL-сертификат был выпущен и установленПодключенный SSL-сертификат вы также увидите в разделе «Дополнительные услуги».

Редактирование .htaccess

Для того, чтобы ваш сайт выглядел так же, как обычно (до перехода на HTTPS), а также использовал правильный код перенаправления, вам необходимо внести изменения в файл .htaccess. В этом файле обычно задаются дополнительные настройки сайта для веб-сервера Apache. Как правило, .htaccess находится в корневой папке сайта. Допустим, если у вас на сайте установлена система управления контентом WordPress, то вы найдете данный файл в папке public_html.

Зайдите в раздел «Файловый менеджер» и откройте .htaccess. В начале текстового файла вам нужно добавить следующие строки:

SetEnvIf X-HTTPS 1 HTTPS

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

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

Затем сохраните изменения.

.htaccessБлагодаря этой правке весь запрашиваемый контент будет передаваться по HTTPS корректно. Это изменение актуально для популярных CMS на хостинге Timeweb.

Ваш сайт должен выглядеть так же, как и до перехода на HTTPS.

С другими типовыми перенаправлениями вы можете ознакомиться в нашей статье в Справочном центре.

Обращаем ваше внимание на то, что сайт будет отображаться по HTTPS только по IPv4 адресу. Для того, чтобы сайт продолжал быть доступным для ресурсов, которые осуществляют запросы приоритетно на IPv6 (например, Яндекс, Google, социальные сети), рекомендуется удалить АААА-запись для домена в разделе «Домены и поддомены» в панели управления аккаунтом.

Редактирование wp-config.php

Эта часть пригодится тем, кто использует на своем сайте именно WordPress. Файл wp-config.php находится в той же корневой папке, что и файл .htaccess, который вы редактировали ранее.

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

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);

Теперь при авторизации в панели администрирования будет принудительно использоваться SSL-сертификат.

Как удалить сертификат?

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

Комментарии

Игорь 0
23 янв в 2017
Необходимо ли дополнительно включать настройку в Панель управления -> Настройки сайта -> Настройки переадресации ->"использовать безопасное соединение https://"?
Свернуть ответы
Комментарий автора
Кристина Лихова +125
23 янв в 2017
Игорь, здравствуйте.

Нет, необходимости в этом нет, так как внесение следующих изменений в .htaccess полностью решает вопрос перенаправлений с HTTP на HTTPS:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Михаил 0
23 янв в 2017
А позиции сайта в поисковиках не просядут при таком переезде? Не нужно оставлять версию сайта, работающую по HTTP, и делать склейку зеркал?
Свернуть ответы
Комментарий автора
Кристина Лихова +125
23 янв в 2017
Михаил, добрый день.

В данном случае используется перенаправление 301, которое является рекомендуемым поисковыми системами и считается наилучшим способом сохранить позиции ресурса в поисковой выдаче. Однако мы не являемся SEO-специалистами, поэтому рекомендуем уточнить этот вопрос в официальных блогах поисковых систем либо обратиться к одному из наших партнеров Marketplace в категории "Продвижение и SEO": http://timeweb.com/ru/community/marketplace
Георгий 0
27 янв в 2017
Добрый день. При использовании данного способа перестала загружаться панель администрирования wordpress (просто пустая страница и всё). Даннная проблема сохраняется в режиме инкогнито и других браузерах.
С чем это может быть связано?
Свернуть ответы
Комментарий автора
Кристина Лихова +125
27 янв в 2017
Георгий, здравствуйте.

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

Вы можете задать соответствующий вопрос в разделе "Вопросы" здесь в Community либо обратиться к одному из наших партнеров в Marketplace: http://timeweb.com/ru/community/marketplace (категория "Продвижение и SEO")
Сергей 0
05 фев в 2017
Подскажите, какой статье верить? Вашей или этой, http://timeweb.com/ru/community/articles/pereezd-na-https-kak-sohranit-pozicii-v-yandekse-i-google-1 И если я по вашей статье перевел сайт на SSL, что будет с позициями моего сайта?
Свернуть ответы
Комментарий автора
Кристина Лихова +125
06 фев в 2017
Здравствуйте, Сергей.

В данной статье описывается только техническая сторона перевода сайта на HTTPS. Так как наша компания не специализируется на SEO-продвижении, мы советуем уточнить данный вопрос либо в официальных блогах поисковых систем (например, в блоге Яндекса: https://yandex.ru/blog/platon/2778 ), либо у одного из наших партнеров Marketplace в категории "Продвижение и SEO": http://timeweb.com/ru/community/marketplace
Eleanor Rigby +46
13 фев в 2017
Сергей, советую делать перенос по обоим статьям, просто не делать две копии сайта, как сказано в статье про Гугл и Яндекс, а оставить сайт доступным по двум протоколам (http и https) - до того момента, как в Яндексе произойдет склейка, и уже после нее настроить редирект, тогда с позициями сайта все должно быть хорошо.
Антон Высоцкий 0
22 апр в 2017
Кто нибудь может подсказать? Установил бесплатный ссл, редирект не ставил, сейчас сайт https://visinvest.net/ работает и по этому адресу и по такому http://visinvest.net/
Решил сейчас установить в нужный файл этот код:
SetEnvIf X-HTTPS 1 HTTPS

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
и сайт у меня не открывается... в чем может быть причина?
Свернуть ответы
Комментарий автора
Кристина Лихова +125
24 апр в 2017
Антон, добрый день.

Так как Ваш сайт размещен не на нашем хостинге, мы рекомендуем Вам с данным вопросом обратиться к Вашему хостинг-провайдеру - он сможет подсказать, как правильно настроить переадресацию для Вашего сайта.
Антон Высоцкий 0
22 апр в 2017
а почему удалил мой комент?
Свернуть ответы
Комментарий автора
Кристина Лихова +125
24 апр в 2017
Антон, комментарии в Community удаляются в том случае, если они являются спамом либо не соответствуют правилам. Как Вы видите, Ваш комментарий выше был опубликован (так же, как и комментарий ниже).
Антон Высоцкий 0
22 апр в 2017
в .htaccess установил код перенаправлений с HTTP на HTTPS:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
теперь сайт ложится)) в чем может быть причина? без кода сайт доступен и по HTTP и
по HTTPS
Доброго времени суток,не подскажите как можно удалить сертификат с сайта http://rface.ru так как сайт собран под другой домен с сертификатом а на котором щас установлен сайт выдает ошибка
Свернуть ответы
Комментарий автора
Кристина Лихова +125
03 мая в 2017
Александр, добрый день.

Так как Ваш сайт размещен не на нашем хостинге, мы рекомендуем Вам с данным вопросом обратиться к Вашему хостинг-провайдеру, чтобы он помог Вам удалить сертификат с Вашего сайта.
Здравствуйте. А почему после установки сертификата SSL и настройки сайта, некоторые страницы показывает, что части этой страницы (такие как изображения не защищены). И как сделать чтоб и изображения показывало по https://. Если можно ответьте пожалуйста.
Свернуть ответы
Лавр Иванов +17
05 мая в 2017
Добрый день.

Для начала можно попробовать в файле .htaccess в папке сайта разместить директиву:
SetEnvIf X-HTTPS 1 HTTPS

Если эффекта не даст, стоит зайти в таблицу wp_options c помощью phpMyAdmin и там явно указать в полях url и home, что сайт должен принудительно открываться по HTTPS.

В случае, если этого действия будет недостаточно, нужно смотреть более конкретно. К примеру, есть плагины, позволяющие упростить процедуру, хотя мне кажется это лишним. Все же перенасыщение сайта плагинами - так себе идея.
Михаил Волков 0
08 июня в 2017
Подскажите пожалуйста а как это применить на wordpress multisite ?
А то уже не работает с этим кодом.. что прописать в .htaccess?
Свернуть ответы
Лавр Иванов +17
09 июня в 2017
Вот неплохая ссылка по теме, может помочь:
https://webdevstudios.com/2015/02/11/how-to-set-up-https-on-wordpress/
Михаил Волков 0
14 июня в 2017
Спасибо. Как оказалось ничего дополнительно не требуется. Все работает как надо)
Yury Vasilchenko 0
15 авг в 2017
Добрый день!
Вот тут Facebook пишет:
"1. Исключите краулер Facebook из запроса на перенаправление HTTP.

Используйте запрос на перенаправление HTTP 301 или 302, чтобы перенаправить людей на новый URL, когда они посещают страницу по старому URL.

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

HTML-код старого URL должен по-прежнему включать теги Open Graph (включая тег og:url, указывающий сам на себя) и возвращать HTTP-отклик 200, когда краулер загружает этот URL.

Кроме того, после изменения URL вы должны убедиться в том, что ваша запись AAAA обновляется должным образом, поскольку краулер будет ее искать и вернет код 0, если не найдет."

Вопросы:
1) Всем ли это нужно делать?
2) Как исключить программный агент краулера из запроса на перенаправление HTTP. Прошу написать код.
3) Что значит "...вы должны убедиться в том, что ваша запись AAAA обновляется должным образом.." Каким образом? Нужно ли обновлять АААА-запись и как это сделать?
Свернуть ответы
Лавр Иванов +17
15 авг в 2017
Привет.

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

У меня ощущение, что решением вашей проблемы станет удаление АААА-записи.
В этом случае сайт будет запрашиваться по IPv4 и проблема пропадёт.

Попробуйте, удалите, подождите и проверьте.
Если не решит - запись можно вернуть.
Yury Vasilchenko 0
15 авг в 2017
Добрый день!

Такая проблема. Не знаю, связана ли она с переходом HTTPS, возможно.

На сайте Open Graph реализован через плагин Yoast SEO.

1) Все страницы сайта отлично расшариваются, кроме трех страниц, одна из которых Главная:

https://hbd.su/ page/preview/novosibirsk-hospitality-business-day-2017

https://hbd.su/ page/partner/main

https://hbd.su

Прикрепил два скриншота из Debugger для примера
http://www.picshare.ru/ view/8234953/
http://www.picshare.ru/ view/8234957/

2) Любая страница, которая назначается как Главная также перестает расшариваться и выдает ту же ошибку.
Добрый вечер Кристина! Рекомендуется удалить АААА-запись для домена в разделе «Домены и поддомены» в панели управления аккаунтом. Где мне найти эту запись АААА?
Свернуть ответы
Комментарий автора
Кристина Лихова +125
04 янв в 2018
Здравствуйте!

АААА-запись Вы можете найти в панели управления аккаунтом, в разделе "Домены и поддомены": необходимо выбрать значок шестеренки рядом с нужным доменом, а затем пункт "Настройки DNS". Более подробно со скриншотами о настройке DNS-записей Вы можете прочитать в нашем Справочном центре: http://timeweb.com/ru/help//pages/viewpage.action?pageId=4358480
Олег 0
07 марта в 2018
А вот у меня нет этой АААА-записи, при этом нужно отключить IPv6. Как же это сделать в таком случае?
Комментарий автора
Кристина Лихова +125
12 марта в 2018
Олег, добрый день.

Обратитесь, пожалуйста, с данным вопросом в нашу службу поддержки, чтобы наши специалисты могли более детально рассмотреть Вашу ситуацию. Направить обращение Вы можете из своей панели управления хостингом (раздел "Служба поддержки").
Сергей 0
30 мая в 2018
Let’s Encrypt требует перевыпуска сертификатов каждые 90 дней. Как производится этот перевыпуск и с какой периодичностью (т.к. если сайт будет работать по https и вдруг сертификат не продлится, будет утерян трафик. Кроме того, перевыпуск можно сделать не ранее, чем за 11 дней до окончания)? Это все делается автоматически и не требует дополнительных действий или все руками и требуется постоянно отслеживать время, оставшееся до перевыпуска? Будут какие то сообщения о перевыпуске сертификата или все проходит в тихую? Где то можно будет смотреть оставшееся время действия сертификата в админке TimeWeb или это все нужно делать в браузере?
Свернуть ответы
Комментарий автора
Кристина Лихова +125
30 мая в 2018
Сергей, добрый день.

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

В панели управления информации о сроке действия сертификата нет, Вы можете проверить срок окончания действия с помощью сервиса SSL Checker: https://www.sslshopper.com/ssl-checker.html

Нюанс, на который важно обратить внимание, - на момент заказа и продления сертификата должны выполняться условия, установленные самим Центром сертификации Let's Encrypt:
1) доменное имя по А-записи ссылается на IP-адрес сервера, на котором расположен аккаунт;
2) домен привязан к необходимой директории на аккаунте, и при переходе на сайт на домене не отображаются ошибки (сайт открывается корректно);
3) не активированы какие-либо перенаправления (редиректы).
Эти требования относятся как к самому домену, так и к его служебному www-поддомену.
Сергей 0
30 мая в 2018
Отличный ответ с важными тонкостями. Спасибо!
Инна 0
26 апр в 09:00
По вашей ссылке на справочный центр вставляемые в .htaccess строки должны выглядеть несколько иначе:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteCond %{HTTP_HOST} ^example\.ru$
RewriteRule ^(.*)$ https://example.ru/$1 [R=301,L]

Т.е. с названием сайта. Какой вариант актуален на сегодня?
Свернуть ответы
Rosh1ck +3
27 апр в 11:00
Добрый день!

Вижу, что в инструкции есть оба варианта: https://timeweb.com/ru/help/pages/viewpage.action?pageId=4358249

Разница в том, что в приведенном вами случае жестко указывается домен, а в случае, который указан в статье, домен автоматически определяется директивой HTTP_HOST

Вы можете использовать любой из предложенных вариантов, но при изменении домена на вашем сайте, если у вас указанно жесткое перенаправление на определенный домен, нужно будет не забыть поменять его в .htaccess
Наталья Тузова 0
11 сен в 19:28
Необходимо ли делать следующее? "Обращаем ваше внимание на то, что сайт будет отображаться по HTTPS только по IPv4 адресу. Для того, чтобы сайт продолжал быть доступным для ресурсов, которые осуществляют запросы приоритетно на IPv6 (например, Яндекс, Google, социальные сети), рекомендуется удалить АААА-запись для домена в разделе «Домены и поддомены» в панели управления аккаунтом"
Если да, то как?