Введение
Если в данный момент ваш сайт работает по небезопасному протоколу 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-сертификат»:
2. В появившемся окне выберите желаемый сертификат (в нашем случае Let’s Encrypt), домен, для которого вы заказываете данный сертификат, и подтвердите то, что вы согласны с правилами предоставления данной услуги.
(Если вы выбрали один из сертификатов Comodo Positive SSL, то вы должны заполнить все поля анкеты.)
Если все выполнено корректно, вы увидите следующее уведомление:
3. Через некоторое время вам придет письмо с уведомлением о том, что 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.
Затем сохраните изменения.
Благодаря этой правке весь запрашиваемый контент будет передаваться по HTTPS корректно. Это изменение актуально для популярных CMS на хостинге Timeweb.
Ваш сайт должен выглядеть так же, как и до перехода на HTTPS.
С другими типовыми перенаправлениями вы можете ознакомиться в нашей статье в Справочном центре.
Редактирование wp-config.php
Эта часть пригодится тем, кто использует на своем сайте именно WordPress. Файл wp-config.php находится в той же корневой папке, что и файл .htaccess, который вы редактировали ранее.
Для того, чтобы теперь все авторизации шли через безопасное соединение, вам нужно внести в файл wp-config.php следующие строки:
define('FORCE_SSL_ADMIN', true); define('FORCE_SSL_LOGIN', true);
Теперь при авторизации в панели администрирования будет принудительно использоваться SSL-сертификат.
Как удалить сертификат?
Если вы по каким-то причинам хотите перестать использовать SSL-сертификат, то вы всегда можете просто выключить его в настройках в разделе «Дополнительные услуги». А для того, чтобы удалить сертификат из дополнительных услуг вашего аккаунта, напишите обращение в нашу службу поддержки.
Комментарии
Нет, необходимости в этом нет, так как внесение следующих изменений в .htaccess полностью решает вопрос перенаправлений с HTTP на HTTPS:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
В данном случае используется перенаправление 301, которое является рекомендуемым поисковыми системами и считается наилучшим способом сохранить позиции ресурса в поисковой выдаче. Однако мы не являемся SEO-специалистами, поэтому рекомендуем уточнить этот вопрос в официальных блогах поисковых систем либо обратиться к одному из наших партнеров Marketplace в категории "Продвижение и SEO": https://timeweb.com/ru/community/marketplace
С чем это может быть связано?
Пожалуйста, воспользуйтесь разделом "Резервные копии" в панели управления для того, чтобы восстановить сайт на момент корректной работы. Для того, чтобы определить причины некорректной работы Вашего сайта в данном случае, необходимо произвести детальный анализ сложившейся ситуации, так как причина может заключаться, например, в установленном плагине. Поэтому дать точный ответ на причину возникновения подобной проблемы мы не можем.
Вы можете задать соответствующий вопрос в разделе "Вопросы" здесь в Community либо обратиться к одному из наших партнеров в Marketplace: https://timeweb.com/ru/community/marketplace (категория "Продвижение и SEO")
В данной статье описывается только техническая сторона перевода сайта на HTTPS. Так как наша компания не специализируется на SEO-продвижении, мы советуем уточнить данный вопрос либо в официальных блогах поисковых систем (например, в блоге Яндекса: https://yandex.ru/blog/platon/2778 ), либо у одного из наших партнеров Marketplace в категории "Продвижение и SEO": https://timeweb.com/ru/community/marketplace
Решил сейчас установить в нужный файл этот код:
SetEnvIf X-HTTPS 1 HTTPS
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
и сайт у меня не открывается... в чем может быть причина?
Так как Ваш сайт размещен не на нашем хостинге, мы рекомендуем Вам с данным вопросом обратиться к Вашему хостинг-провайдеру - он сможет подсказать, как правильно настроить переадресацию для Вашего сайта.
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
теперь сайт ложится)) в чем может быть причина? без кода сайт доступен и по HTTP и
по HTTPS
Так как Ваш сайт размещен не на нашем хостинге, мы рекомендуем Вам с данным вопросом обратиться к Вашему хостинг-провайдеру, чтобы он помог Вам удалить сертификат с Вашего сайта.
Для начала можно попробовать в файле .htaccess в папке сайта разместить директиву:
SetEnvIf X-HTTPS 1 HTTPS
Если эффекта не даст, стоит зайти в таблицу wp_options c помощью phpMyAdmin и там явно указать в полях url и home, что сайт должен принудительно открываться по HTTPS.
В случае, если этого действия будет недостаточно, нужно смотреть более конкретно. К примеру, есть плагины, позволяющие упростить процедуру, хотя мне кажется это лишним. Все же перенасыщение сайта плагинами - так себе идея.
А то уже не работает с этим кодом.. что прописать в .htaccess?
https://webdevstudios.com/2015/02/11/how-to-set-up-https-on-wordpress/
Вот тут 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 обновляется должным образом.." Каким образом? Нужно ли обновлять АААА-запись и как это сделать?
Без предыстории, указания домена сложно понять суть.
Просто требования сервиса и вопросы.
У меня ощущение, что решением вашей проблемы станет удаление АААА-записи.
В этом случае сайт будет запрашиваться по IPv4 и проблема пропадёт.
Попробуйте, удалите, подождите и проверьте.
Если не решит - запись можно вернуть.
Такая проблема. Не знаю, связана ли она с переходом 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) Любая страница, которая назначается как Главная также перестает расшариваться и выдает ту же ошибку.
АААА-запись Вы можете найти в панели управления аккаунтом, в разделе "Домены и поддомены": необходимо выбрать значок шестеренки рядом с нужным доменом, а затем пункт "Настройки DNS". Более подробно со скриншотами о настройке DNS-записей Вы можете прочитать в нашем Справочном центре: https://timeweb.com/ru/docs/domeny/resursnye-zapisi-domena-dns-zapisi/nastrojka-dns-zapisej/
Обратитесь, пожалуйста, с данным вопросом в нашу службу поддержки, чтобы наши специалисты могли более детально рассмотреть Вашу ситуацию. Направить обращение Вы можете из своей панели управления хостингом (раздел "Служба поддержки").
Перевыпуск сертификата производится за 2 недели до окончания срока действия. Это происходит полностью автоматически, без каких-либо действий с Вашей стороны и без уведомлений.
В панели управления информации о сроке действия сертификата нет, Вы можете проверить срок окончания действия с помощью сервиса SSL Checker: https://www.sslshopper.com/ssl-checker.html
Нюанс, на который важно обратить внимание, - на момент заказа и продления сертификата должны выполняться условия, установленные самим Центром сертификации Let's Encrypt:
1) доменное имя по А-записи ссылается на IP-адрес сервера, на котором расположен аккаунт;
2) домен привязан к необходимой директории на аккаунте, и при переходе на сайт на домене не отображаются ошибки (сайт открывается корректно);
3) не активированы какие-либо перенаправления (редиректы).
Эти требования относятся как к самому домену, так и к его служебному www-поддомену.
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteCond %{HTTP_HOST} ^example\.ru$
RewriteRule ^(.*)$ https://example.ru/$1 [R=301,L]
Т.е. с названием сайта. Какой вариант актуален на сегодня?
Вижу, что в инструкции есть оба варианта: https://timeweb.com/ru/docs/virtualnyj-hosting/fajl-htaccess/tipovye-perenapravleniya/
Разница в том, что в приведенном вами случае жестко указывается домен, а в случае, который указан в статье, домен автоматически определяется директивой HTTP_HOST
Вы можете использовать любой из предложенных вариантов, но при изменении домена на вашем сайте, если у вас указанно жесткое перенаправление на определенный домен, нужно будет не забыть поменять его в .htaccess
Если да, то как?