Зачем нужен и как работает SSL
Перевод сайта на HTTPS: шаг первый. Подключение сертификата
Как настроить HTTPS на сайте
Редирект сайта на HTTPS с помощью директив в .htaccess
Как перенести сайт на HTTPS в панели управления Яндекс.Вебмастер
Как перенести сайт с HTTP на HTTPS в Google Search Console
Подводя итоги
Сначала Google, а впоследствии и Яндекс стали отдавать лучшие позиции в поисковой выдаче тем сайтам, на которых трафик шифруется по протоколу SSL. Необходимость защищать данные пользователя связана с уязвимостью протокола HTTP. Он передает данные в сеть без использования шифрования, что позволяет легко перехватывать не только информацию, введенную в формы (сообщения, платежные реквизиты, номера телефонов, пароли), но и просто следить за пользователем, собирая данные о просмотренных страницах.
Именно по этой причине SSL-сертификат необходим даже тем сайтам, которые не требуют от посетителей ввода личных данных. Если у вас интернет-магазин или другой проект, где пользователи предоставляют конфиденциальную информацию о себе, то использование сертификата является практически обязательным. Кроме того, браузеры Chrome. Firefox, Яндекс Браузер и другие с 2018 года выводят отметку в строке адреса о небезопасном подключении для сайтов без SSL.
Предлагаем воспользоваться пошаговой инструкцией в данной статье, чтобы перевести сайт на HTTPS протокол и не потерять позиции в выдаче поисковых систем.
Вопрос о том, переводить ли сайт на HTTPS, уже несколько лет имеет единственный — утвердительный — ответ. Но до сих пор многие владельцы сетевых ресурсов не понимают зачем он нужен. На самом деле SSL сертификат обеспечивает шифрование трафика, который передается между браузером посетителя и сервером. Безопасное соединение гарантирует, что злоумышленнику не удастся получить доступ к полученным и отправленным пользователем данным, поскольку сертификат представляет собой взломостойкий криптографический ключ, который состоит из двух частей. Секретная его часть хранится на сервере, публичная передается браузеру при установлении соединения.
Важно: Чтобы гарантировать надежность самого сертификата, в него внедряется подпись центра сертификации, который в свою очередь аккредитован в корневом удостоверяющем центре (англ. Certification authority, CA).
Как добавить HTTPS на сайт? Теоретически, для этого можно сгенерировать собственный ключ и подписать им сертификат (они так и называются — самоподписанные). Проблема в том, что он не будет считаться доверенным, а значит будет приравнен практически всеми популярными браузерами к небезопасному подключению. Чтобы правильно перевести сайт с HTTP на HTTPS, нужно использовать сертификаты, выданные доверенными центрами. Это компании, которые подтвердили свою надежность и честность. Их задача — осуществлять проверку поступивших заявок на выдачу сертификата. Чем больше глубина проверки, тем надежнее (и дороже) сертификат.
Виды проверок:
Получить EV сертификат сайта для HTTPS тяжелее всего, но он является показателем высшего уровня доверия (зеленая строка в браузере), кроме того, цена выдачи у такого сертификата достаточно существенна. С другой стороны — если вы не оказываете услуги банкинга и не оперируете непосредственно с деньгами своих клиентов, то можно ограничиться Business Validation. Большинству информационных сайтов будет достаточно сертификата с проверкой домена.
Важно! Нужно помнить, что у любого сертификата есть срок, на который он выдан. Обычно он равен одному году.
Перед тем, как перевести сайт на HTTPS протокол, нужно получить SSL-сертификат. Есть несколько вариантов: можно обратиться к своему хостеру или воспользоваться услугами компании-реселлера.
Есть возможность получить бесплатный сертификат, который будет обладать достаточным уровнем доверия. На сегодняшний день, единственное такое решение предлагает Lets Encrypt, но для получения сертификата нужна либо поддержка этого функционала хостингом, либо доступ к запуску скриптов. Во втором случае нужен VPS — Virtual Private Server виртуальный частный сервер.
Некоторые панели управления хостингом и VPS имеют встроенный функционал автоматического запроса сертификата от Lets Encrypt и проверки домена через запись DNS, но работоспособность этого функционала полностью зависит компании-хостера. К таким панелям относится ISP Manager 5:
Как сделать сайт защищенным HTTPS протоколом? Сначала нужно указать веб серверу, что необходимо использовать SSL-шифрование и предоставить действующий сертификат.
Дальнейший порядок действий зависит от того, каким образом вы приобретаете сертификат.
Если ваш хостер предлагает дополнительные услуги в виде его продажи и установки, то нужно просто выбрать соответствующий пункт из меню, заполнить поля анкеты (домен, наименование организации и другие) и дождаться выпуска.
Альтернативное решение — покупка сертификата у реселлера, с его последующим подключением к хостингу. Для этого придется указать ключи и цепочки, которые были получены на электронную почту после выдачи.
В ISP настройка выполняется аналогичным образом.
Но требуется дополнительный шаг: подключение сертификата к конкретному WWW домену:
Обратите внимание! Лучше не включать форсирование использования SSL, по крайней мере до тех пор, пока вы не убедитесь, что ваш сайт открывается по HTTPS. Настройку HTTPS для сайта лучше ограничить подключением SSL и указанием номером порта (443). В этом случае сайт будет одновременно доступен и по HTTP и по HTTPS.
Есть и еще один нюанс: если в работе вашего проекта используются поддомены, то вам понадобится Wildcard-сертификат. Данный вариант позволяет существенно сэкономить, используя только один набор ключей безопасности для всех поддоменов. Для защиты киррилических доменов потребуется специальный тип сертификата — IDN.
Если после первого шага ваш веб сервер начал использовать SSL для обработки запросов пользователей (можно проверить, введя в адресную строку ссылку с https:), то это не значит, что переход на HTTPS закончен. Многие системы управления контентом требуют проведения дополнительных настроек для перехода к HTTPS.
Например. в Joomla необходимо включить поддержку SSL в общих настройках сайта:
Обратите внимание! С осторожностью включайте поддержку SSL, и только после того, как убедились что сайт должным образом открывается по HTTPS. В случае ошибки отменить внесенные изменения можно будет только вручную отредактировав файл конфигурации или восстановив файлы сайта из резервной копии.
Многие другие CMS имеют аналогичные настройки. Они позволяют делать автоматический редирект сайта с HTTP на HTTPS. Но этот метод работает только с теми ссылками, для которых был задан относительный путь (без протокола и иногда даже без домена). К ним относятся большинство стандартных модулей сайта — вывод меню, ссылок на статьи в блоге или товаров в интернет магазине. Но если ранее вы вручную указывали ссылки на внутренние документы и страницы, и они включали полный путь с протоколом HTTP, то для подготовки переезда сайта на HTTPS их нужно найти и заменить на относительные.
Важно: даже если таких ссылок очень много, вовсе не обязательно их исправлять вручную — вы потратите слишком много времени. Все описания и статьи хранятся в базе данных вашего сайта. Это значит, что можно составить SQL-запрос, который автоматически заменит все HTTP на HTTPS или превратит абсолютные ссылки в относительные.
Но на этом процесс перевода сайта с HTTP на HTTPS не закончен. Чтобы полностью исключить возможное использование устаревшего протокола, нужно внести изменения в .htaccess.
Файл .htaccess.позволяет управлять параметрами работы веб-сервера под управлением ОС Linux (для Windows-серверов файл с аналогичным функционалом называется web.config). Дополнительный редирект с помощью директив завершает установку HTTPS на сайт: с его помощью закрываются все оставшиеся возможности для получения доступа по протоколу HTTP.
Существует не один десяток вариантов установки 301 редиректа для всех страниц сайта. В зависимости от конкретных настроек веб-сервера, некоторые из них могут приводить к появлению циклических переадресаций. Вот одно из универсальных решений, которое правильно работает в 99% случаев:
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Важно! данный вариант будет работать, только если у вас используется mod_rewrite. Активировать данный модуль веб-сервера можно в том же .htaccess добавив в самое начало файла строку RewriteEngine On
Если подключение HTTPS к сайту через настройку редиректа в .htaccess не приносит желаемого результата, переадресацию можно сделать методами PHP (нужен доступ к файлу index.php в корне сайта)
if(!isset($_SERVER[’HTTPS’]) || $_SERVER[’HTTPS’] == ""){
$redirect = "https://".$_SERVER[’HTTP_HOST’].$_SERVER[’REQUEST_URI’];
header("HTTP/1.1 301 Moved Permanently");
header("Location: $redirect«);
}
Перед тем, как сделать редирект с HTTP на HTTPS в панелях управления поисковых систем нужно обязательно вручную проверить доступность самых важных страниц сайта. Если ошибки не возникает и весь функционал работает так, как должен, можно переходить к следующему этапу перехода сайта на HTTPS.
Если не предпринимать никаких действий, и не указать Яндексу на то, что вы подключили SSL и настроили редирект, то с каждым новым обновлением поисковой базы страницы сайта будут выпадать из индекса. Раньше Яндекс поддерживал систему зеркал: можно было добавить в поиск новую версию сайта с HTTPS и ожидать, когда произойдет их автоматическая склейка. Сейчас данный функционал не работает, равно как и директива Host в файле robots.txt. Единственный способ переезда сайта с HTTP на HTTPS без потерь страниц в поиске и полученных значений ИКС (Индекс Качества Сайта) заключается в использовании специального функционала Яндекс.Вебмастер — «Переезд сайта»
Таким образом вы проинформируете Яндекс о том, что начато использование HTTPS на сайте. Если все настроено правильно, через несколько обновлений поисковой базы все страницы в индексе без HTTPS будут прикреплены к новому элементу списка добавленных в Вебмастер сайтов. Также состоится передача индекса ИКС и количества страниц в поиске.
Важно: перенос сайта на HTTPS не состоится, если подавляющее большинство страниц и ссылок не будут открываться по HTTPS. Также, процесс завершится ошибкой, если переадресация с HTTP на HTTPS будет настроена неправильно. Специфичная ошибка для некоторых сайтов — тег canonical у страниц указывает на сайт без HTTPS. Чтобы исправить ситуацию, нужно явно указать протокол в настройках соответствующего плагина.
В отличие от Яндекс, Google не предлагает отдельного инструмента для перехода с HTTP на HTTPS. Вместо этого, владельцам переезжающих ресурсов необходимо добавить новый сайт в консоль.
Важно, что не требуется никаких дополнительных настроек. Единственное, что нужно обязательно проверить перед тем как перевести сайт на HTTPS в Google Search Console, это наличие префикса HTTPS в канонических ссылках страниц сайта.
По мере обхода роботом страниц, будут меняться и результаты выдачи Google. Постепенно все страницы в индексе будут заменены, а сам переход сайта с HTTP на HTTPS пройдет незаметно и не скажется (отрицательно) на ранжировании.
Забота о безопасности пользователей заставляет поисковые системы создавать владельцам сетевых ресурсов такие условия, когда они будут вынуждены перейти к использованию сертификатов. Теперь вы знаете как подключить HTTPS на сайте, и какие подготовительные операции следует провести, чтобы как минимум не потерять уже имеющиеся позиции в поиске.
Если вы сомневаетесь в выборе сертификата, не знаете как установить HTTPS на сайт под управлением конкретной CMS или испытываете сложности с настройкой редиректа, посмотрите на этой странице стоимость подобных работ.
Внутренняя оптимизация сайта. Базовые принципы и пошаговая настройка
Читать статьюSEO-продвижение молодого сайта. Первые шаги, основные правила, советы экспертов
Читать статьюСниппет: что это такое, snippet сайта в SEO
Читать статьюЧто такое SEO продвижение и как работает поисковая оптимизация
Читать статью