Справочная информация >> Статьи о хостинге >> Подключение SSL сертификата и настройка редиректа с http на https


Как мигрировать Ваш сайт с HTTP на HTTPS ("подводные камни")?

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

  • Подлинность Если у Вашего домена есть защищённое соединение и SSL-сертификат, это является подтверждением того, что сайт действительно является подлинным. Это повышает доверие к сайту и репутацию
  • Целостность данных Протокол HTTPS - гарантия того, что все данные, переданные пользователю являются целостными. К примеру, владелец Wi-Fi сети имеет возможность вставлять на сайт "левую" рекламу или изменять внешний вид сайта в целях экономии трафика. Но если на сайте есть HTTPS, то это гарантирует, что сайт не будет изменен
  • Конфиденциальность HTTPS защищает коммуникацию между сервером и конечным пользователем. Если защищённое соединение отстутствует, владельцу точки доступа становятся доступны приватные данные пользователя

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

Напротив поля с Вашим доменным именем нажмите «SSL→https». Откроется модальное окно, в котором Вы выбираете домен (или поддомен), который хотите защитить. Далее нажимаете «Заказать сертификат». В течение 10-15 минут Вам будет автоматически подключен SSL-сертификат.

Заявка на SSL-сертификат

Второе, что Вам может понадобиться, это сделать все внутренние ссылки сайта относительными. То есть, необходимо убрать в начале ссылок символы "http://" или добавить к указанным символам «s», чтобы они вели на версию сайта с протоколом безопасности HTTPS. То же касается картинок, файлов, видео, аудио, внешних скриптов (виджетов, библиотек и т.п.). Чтобы не делать это вручную, можно попросить своего программиста, либо воспользоваться одним из многочисленных сервисов для анализа сайтов.

Посмотрим пример сайта с подключенным SSL-сертификатом, но жёстко заданными ссылками для картинок под протоколом HTTP в браузерах Firefox и Yandex.

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

Это касается также всех форм. К примеру, если данные сабмитятся (от англ. submit) на страницу с протоколом HTTP, также будет выдаваться предупреждение для пользователя. Поэтому необходимо внимательно просмотреть страницы Вашего сайта на отсутствие любых элементов со ссылкой на HTTP протокол.

незащищённое соединение

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

ссылки на http
защищённое соединение
незащищённое соединение

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

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

  • Вариант 1:
  • RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
  • Вариант 2:
  • RewriteEngine On
    RewriteCond %{HTTPS} =off 
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
  • Вариант 3:
  • RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Если Ваш сайт использует какую-либо CMS, то есть вероятность реализовать редирект через админку самой системы управления сайтом, без задействования файла .htaccess. Уточнить этот момент Вам поможет документация по используемой CMS. Но, для примера, мы рассмотрим OpenCart и Wordpress:

Настройка редиректа для OpenCart?

Всё что нужно сделать, это открыть конфигурационные файлы (config.php) и прописать правило:

// HTTPS
define('HTTPS_SERVER', 'https://yourdomain.com/');
Настройка редиректа для Wordpress?

Чтобы сделать то же самое в Worpress, в административной панели сайта перейдите в раздел «Настройки» > «Общие», в полях "Адрес WordPress" и "Адрес сайта" протокол "http" меняется на "https". В конфигурационном файле (wp-config.php) добавляется следующая строка:

define('FORCE_SSL_ADMIN', true);

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