Page tree

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

Если вы не хотите заниматься настройкой самостоятельно, рекомендуем вам сертификат SSL Timeweb Pro — при его заказе все необходимые работы по установке и настройке SSL, а также по настройке вашего сайта выполнят наши специалисты. Вы также можете заказать отдельную услугу по настройке сайта при заказе сертификата Let's Encrypt.

1. SSL-сертификат

В Timeweb вы можете заказать как сертификаты Sectigo, так и бесплатный Let's Encrypt. Подробнее о типах сертификатов, их заказе и установке см. в разделе SSL-сертификаты.

После того, как сертификат установлен, потребуется выполнить определенные настройки на сайте и устранить Mixed Content.

2. Перенаправление на HTTPS

Включить перенаправление на протокол HTTPS можно через панель управления или с помощью директив в файле .htaccess.

В панели управления:

  1. Перейдите в раздел "Сайты" и нажмите на значок шестеренки у нужного сайта.
  2. В открывшемся окне настроек включите опцию "Использовать безопасное соединение https://" и сохраните изменения.


Чтобы настроить перенаправление на HTTPS вручную, нужно добавить соответствующие директивы в файл .htaccess. Стандартная конструкция выглядит следующим образом:

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

Также возможно другие варианты настроек; примеры директив и информацию о работе с .htaccess можно найти здесь.

3. Дополнительные настройки для CMS

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

Wordpress

В случае с Wordpress можно обойтись без настройки вручную и воспользоваться специальными плагинами (например, Really Simple SSL), которые настроят сайт для работы по HTTPS, а также устранят Mixed Content (по крайней мере, частично).

При ручной настройке:

  1. В админ-панели сайта перейдите в раздел "Настройки" - "Общие". 
  2. Укажите протокол HTTPS в полях "Адрес WordPress" и "Адрес сайта", то есть замените http://domain.ru на https://domain.ru.
  3. В конфигурационный файл wp-config.php добавьте строку:
define('FORCE_SSL_ADMIN', true);

Joomla

  1. В админ-панели сайта перейдите в раздел "Система" - "Общие настройки" - вкладка "Сервер". 
  2. В пункте "Включить SSL" выберите "Весь сайт" и сохраните изменения.
  3. В конфигурационном файле configuration.php в строке с параметром $live_site укажите URL вашего сайта с протоколом HTTPS:
public $live_site = 'https://domain.ru';

1С-Битрикс

Для CMS Битрикс рекомендуется выполнить несколько дополнительных проверок:

  • Проверить работу форм обратной связи, так как ajax-запросы могут содержать ссылки на HTTP, которые перестанут работать.
  • Проверить интеграцию с 1С. Если ваша версия 1С не поддерживает протокол HTTPS, добавьте следующий код в .htaccess:
RewriteEngine OnRewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange\.php$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
  • Проверить выгрузки на торговые площадки (Яндекс.Маркет и др). Файлы выгрузки будет нужно сгенерировать заново. В разделе "Рабочий стол" - "Магазин" - "Настройки" - "Экспорт данных" включите опцию "Использовать в выгрузке протокол https" в выгрузке Yandex.
  • Если используется CDN, поставьте флажок в поле "Сайт работает по https" в настройках сервиса "Ускорение сайта CDN".
  • В настройках модуля "E-mail маркетинг" включите https для ссылок в письмах.

Drupal

Для Drupal 8 дополнительных настроек не требуется.

Для Drupal 7 в конфигурационный файл settings.php добавьте строки:

$conf['https'] = TRUE;
$base_url = 'https://domain.ru';

MODX Revolution

  1. В админ-панели сайта перейдите в раздел "Настройки" - "Системные настройки" - вкладка "Сайт". 
  2. Найдите параметр "Тип сервера" (можно искать по ключу server_protocol) и замените HTTP на HTTPS.
  3. Далее найдите параметр "Схема URL" (ключ link_tag_scheme) и замените значение -1 на 1.

Если в работе сайта возникают проблемы, попробуйте дополнительно внести следующие изменения в конфигурационный файл config.inc.php:

# Строку
$isSecureRequest = false; 
 
# заменить на:
$isSecureRequest = true;
 
# Строку:
$url_scheme= $isSecureRequest? 'https://': 'http://';
 
# заменить на:
$url_scheme= 'https://';

OpenCart

  1. В админ-панели сайта перейдите в раздел "Система" - "Настройки".
  2. На вкладке "Сервер" в пункте "Использовать SSL" выберите "Да" и сохраните изменения.
  3. В конфигурационном файле /public_html/config.php в блоках HTTP и HTTPS укажите URL вашего сайта с протоколом HTTPS:

    // HTTP
    define('HTTP_SERVER', 'https://domain.ru/');
    
    // HTTPS
    define('HTTPS_SERVER', 'https://domain.ru/');
  4. В конфигурационном файле /public_html/admin/config.php также укажите протокол HTTPS в блоках HTTP и HTTPS:

    // HTTP
    define('HTTP_SERVER', 'https://domain.ru/admin/');
    define('HTTP_CATALOG', 'https://domain.ru/');
    
    // HTTPS
    define('HTTPS_SERVER', 'https://domain.ru/admin/');
    define('HTTPS_CATALOG', 'https://domain.ru/');

Prestashop

  1. Перейдите в раздел "Параметры магазина" - "Общее" и в самом первом пункте "Включить SSL" нажмите на ссылку для проверки поддержки HTTPS.
  2. При появлении уведомления безопасности подтвердите переход по ссылке.
  3. В пункте "Включить SSL" выберите "Да" и сохраните настройки.
  4. В пункте "Включить SSL на всех страницах" выберите "Да" и еще раз сохраните.

Дополнительно рекомендуется очистить кэш: раздел "Расширенные возможности" - "Производительность" - "Очистка кэша".

4. Устранение Mixed Content

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

Проверить наличие таких ссылок и ошибок можно:

  • С помощью специальных сервисов, например, JitBit. Сервис выведет список страниц, на которых обнаружено смешанное содержимое.
  • В консоли разработчика в браузере. В Chrome и Firefox ее можно открыть с помощью Ctrl+Shift+J. В поиске введите 'mixed', чтобы отфильтровать нужные ссылки. 

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

В Wordpress для этой цели можно использовать специальные плагины, например:

При ручной настройке можно: 

1) Заменить во всех ссылках, где возможно, протокол HTTP на HTTPS, то есть вместо ссылок вида:

http://domain.ru/page/file.jpg

использовать:

https://domain.ru/page/file.jpg

Если ссылка ведет на сторонний ресурс (http://некий-сайт/page/file.jpg), сначала проверьте, что он доступен по HTTPS и ссылка останется рабочей. Если это не так, попробуйте воспользоваться вторым вариантом.

2) Второй вариант — заменить ссылки на относительные вместо абсолютных, то есть вместо ссылок вида:

http://domain.ru/page/page2/file.jpg

использовать ссылки:

/page/page2/file.jpg

Это же касается ссылок на сторонние ресурсы, в них необходимо полностью отбросить указание протокола. То есть вместо ссылок вида:

http://некий-сайт/page/page2/file.jpg

нужно указать:

//некий-сайт/page/page2/file.jpg

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

  • если это медиа-контент (картинки, видео и пр.) — по возможности загрузить их на сервер TImeweb, в директорию вашего сайта, и после обновить ссылки;
  • найти аналог этого сайта или ресурса и полностью обновить ссылки на данный элемент;
  • не использовать этот файл или скрипт, если есть такая возможность, и полностью удалить его из кода страницы.
  • No labels