Справочная информация >> Статьи о хостинге >> Подключение 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.