База знаний

Инструкции и ответы на вопросы о хостинге, работе сайтов и приложений

Настройка cайта HTTPS

HTTPS — протокол, который позволяет передавать данные на сайте в зашифрованном виде и делает их недоступными для просмотра посторонними. Для того, чтобы настроить работу сайта по защищенному протоколу, установите  SSL-сертификат (платный или бесплатный сертификат Let’s Encrypt).

После установки SSL-сертификата настройте перенаправление запросов пользователей на защищенную версию сайта при помощи файла .htaccess и проверьте сайт из нескольких браузеров.

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

Значит, часть ссылок на вашем сайте содержит незащищенный протокол HTTP. Полноценная настройка сайта для работы с протоколом HTTPS обычно сводится к замене протокола в прямых ссылках, присутствующих в коде сайта и его базе данных. Это могут быть как внутренние ссылки, указывающие на страницы сайта, так и ссылки, указывающие на внешние ресурсы. На сайте могут быть использованы изображения или скрипты, размещаемые на сторонних сайтах. К примеру, используемая на сайте библиотека jQuery может подгружаться извне, а не находиться в одном из его каталогов, при этом в ссылке на библиотеку будет явным образом указан протокол HTTP.

Чтобы выяснить, какие именно ссылки на сайте все еще используют протокол HTTP, нажмите на стрелку в уведомлении, выберите «Подробнее», а затем в открывшемся новом окне «Информация о странице» перейдите во вкладку «Мультимедиа».

Также можно использовать «Инструменты разработчика» в браузере. Для этого нажмите клавишу F12 или комбинацию Ctrl+Shift+I на клавиатуре и перейдите во вкладку «Консоль» открывшегося окна (или в меню «Инструменты» → «Веб-разработка» → «Веб-консоль»), в которой содержится сообщение о загрузке смешанного содержимого на сайте (Mixed Content) с соответствующими указателями.

Лучше использовать ссылки, исключающие название протокола. В этом случае они всегда будут указывать на те страницы, которые пользователь открывает в браузере при работе с сайтом.

Например:
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
рекомендуем заменить на
 <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

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

Для поиска абсолютных ссылок в базе данных сайта воспользуйтесь доступным на главной странице Панели управления инструментом PhpMyAdmin. В PhpMyAdmin выберите базу данных нужного сайта и нажмите на кнопку «Поиск». В качестве значения для поиска следует выбрать имя файла или домен, обращение к которому происходит по протоколу HTTP.


CMS WordPress

Изменить с HTTP на HTTPS протокол сайта, работающего под управлением CMS WordPress, можно в разделе «Настройки» → «Общие» в панели администрирования WordPress.

Внести изменения можно и напрямую через  базу данных сайта. Для этого перейдите в PhpMyAdmin, выберите базу данных нужного сайта и в таблице *_options замените протокол в значениях для ‘siteurl’ и ‘home’ на https://:

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

Чтобы не редактировать ссылки вручную, воспользуйтесь для поиска и замены протокола в ссылках плагином  «Search & Replace».

После установки и активации плагина создайте резервную копию базы данных, чтобы вернуть рабочее состояние сайта, если что-то пойдет не так.

После создания резервной копии в разделе «Инструменты» → «Search & Replace» выберите страницу настроек плагина и перейдите во вкладку «Search & Replace».

Выставляем следующие настройки:

  1. Значение, которое нужно найти, в поле «Search for» — домен вашего сайта с протоколом HTTP: http://example.com
  2. Значение, на которое нужно заменить найденное, в поле «Replace with» — домен вашего сайта с протоколом HTTPS: https://example.com
  3. Отметьте пункт «Select all tables» для замены вхождений, найденных во всех таблицах базы данных.
  4. Снимите отметку рядом с пунктом «Dry Run» и поставьте ее напротив пункта «Save changes to Database».

Кликните на кнопку «Do Search & Replace» и дождитесь окончания процесса. В верхней части страницы должен появиться отчет о проделанной работе: количество таблиц, затронутых при поиске, и количество отредактированных строк.

Перейдите на сайт по протоколу https:// и убедитесь в том, что SSL-шифрование используется на всех страницах сайта:

Кроме того, важно знать, что изменение URL сайта с HTTP на HTTPS повлияет на его индексирование поисковыми системами. Возможно, вам будет интересно ознакомиться со справкой Google по переносу сайта на новый URL и с  рекомендациями в блоге Яндекса.

Была ли эта инструкция полезной?