Как перенести сайт на HTTPs. Пошаговая инструкция
Многие серьезные проекты использовали HTTPS ещё в 2000х, часть перешли на защищенный протокол в 2010-2011, когда был большой бум из-за утилит иранского хаккера Марлинспайка Firesheep и SSLS trip, позволяющих воровать персональные данные с незащищенных сайтов. Совсем недавно правительство США поручило всем федеральным сайтам перейти в срочном порядке на HTTPS до конца 2016 года. И уже совсем скоро Mozilla Firefox перестанет поддерживать небезопасные HTTP -соединения в браузере. В связи с этим, предвидится новый бум и массовый переход на HTTPS . Рано или поздно вам тоже придется с этим столкнуться.
Чтобы сильно не рисковать незначительным снижением трафика, как раз летом, в отсутствие сезона, у вас есть время заняться переносом сайта с HTTP на HTTPS . Тем более, что Яндекс прекратил обновлять выдачу, а Google обещает давать приоритеты защищенным сайтам.
Как же перенести свой сайт на HTTP s? Ниже представлена пошаговая инструкция.
1. Подготовка сайта
Исправить некоторые моменты в коде сайта лучше до перехода на HTTPS , чтобы избавиться от возможных технических проблем.
Смена ссылок внутренней перелинковки с абсолютных на относительные
Относительные ссылки бывают двух типов:
1. Относительные вне зависимости от домена
https://raybin.ru/about/ — абсолютная. /about/ — относительная.
2. Относительные вне зависимости от протокола
https://raybin.ru/about/ — абсолютная //raybin.ru/about/ — относительная
Необходимо использовать ссылки последнего вида, когда вы исключаете название протокола. Таким образом, не важно, на HTTP ваш сайт или на HTTPS , он будет всегда ссылаться на страницы с тем же протоколом. Обратите внимание, что мы говорим про внутренние ссылки, так как внешние сайты могут вовсе не поддерживать HTTPS , поэтому ссылки на них мы оставляем как и были.
Если у вас несколько связанных проектов или поддоменов одного сайта, и все из них вы переводите на HTTPS , то относительная структура ссылок поможет правильной индексации поисковыми системами и верному перенаправлению пользователей.
Исправление вложений медиа-контента
Проверьте, какой медиа-контент (изображения, видео, презентации, и др.) вы используете у себя на сайте и по какому протоколу его запрашиваете. Здесь необходимо тоже все перевести в относительные адреса, и тогда при переходе на HTTPS у вас медиа-контент также будет подгружаться с защищенных сайтов. Но стоит убедиться, что он действительно доступен по HTTPS .
Если используемые вами картинки хранятся на вашем сайте, то просто используйте относительные адреса //site.ru/img/mega-image.jpg . Если вы подгружаете картинки с внешних ресурсов ( CDN или других сайтов), то они также должны поддерживать HTTPS , иначе стоит отказаться от этих вложений.
Популярные сервисы, которые позволяют внедрять свой контент, типа YouTube, SlideShare, виджеты VK или Facebook, и другие, уже давно поддерживают HTTPS , поэтому с ними проблем не возникнет. Но если вы используете медиа-контент с непопулярных сервисов, то уточните, будет ли этот контент работать/отображаться, если вы смените протокол.
Исправление подключений внешних скриптов
Во внешних скриптах также нужно использовать относительные URL . Например, для библиотеки jQuery, вместо кода:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
Нужно использовать:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
Также и с другими скриптами: Яндекс.Метрика, LiveInternet, Google Analytics, Яндекс.Директ, различные javascript библиотеки и др. Здесь принцип тот же: популярные сервисы и библиотеки поддержкивают HTTPS , а вот с непопулярными могут возникнуть проблемы (как например, у ПриватБанка или Корреспондента с сетью MediaTraffic, которые до сих пор её использует по небезопасному соединению).
Подготовительная работа может занять много времени, поэтому все эти исправления лучше делать до полного переноса сайта с HTTP на HTTPS . Если для некоторых проектов стоимость переноса зависит в большей степени от стоимости SSL -сертификата и 1 часа программиста, то у других проектов стоимость переноса как раз заключается в подготовительных работах, так как не все партнеры, которые помогают этим проектам монетизироваться, могут поддерживать защищенный HTTPS протокол.
2. Установка SSL -сертификата
После того, как вы сделали все внутренние и внешние ссылки относительными, проверили доступность медиа-контента и скриптов по протоколу HTTPS , можно заняться установкой и настройкой SSL -сертификата.
Выбор и приобретение подходящего SSL -сертификата
Существует несколько видов SSL -сертификатов. В зависимости от специфики вашего проекта, нужно выбрать наиболее подходящий сертификат.
1. Обычные сертификаты подходят физическим и юридическим лицам, выдаются на один домен и их выпуск занимает несколько минут. Здесь происходит лишь проверка принадлежности домена тому, кто запрашивает сертификат.
2. EV (Extended Validation) . Сертификаты с расширенной проверкой компании. Помимо принадлежности домена тому, кто запрашивает сертификат, здесь также проверяются наличие организации, свидетельство о государственной регистрации, наличие названия компании в whois домена, проверочные звонки и многое другое. EV-сертификат дает возможность получить зеленую строку в адресной строке браузера с названием компании (как вы уже заметили это у Твиттера или на других сайтах).
3. Wildcard . Сертификаты, которые выдаются на все поддомены одного домена. Если у вас много региональных или других поддоменов, то обязательно нужно брать wildcard-сертификат.
4. С поддержкой IDN . Не все сертификаты поддерживаются для кириллических доменов. Если у вас кириллический домен, то нужно искать сертификаты с поддержкой IDN .
Подробнее о видах сертификатов можно ознакомиться в этой статье:
http://habrahabr.ru/company/tuthost/blog/150433/
Установка сертификата на сервере
Большинство хостеров предоставляют возможность через панель управления быстро установить выданный сертификат. Если у вас возникнут с этим проблемы, обратитесь в тех-поддержку хостинга или наймите на 1 час программиста. Установка обычно происходит пару минут, но при этом сам сервер должен поддерживать SSL протокол. Если у вас не популярный хостинг, то уточните у хостера, поддерживают ли они SSL и как вам можно установить сертификат.
Сертификат не привязывается к IP или хостингу, поэтому, его можно установить на любой выбранный вами хостинг, но конечно там, где вы размещаете свой сайт. Если текущий хостер не поддерживает SSL , то придется перейти к другому.
Проверка доступности сайта через HTTPS -протокол
Установив ssl-сертификат, убедитесь, что теперь сайт доступен по двум адресам, с http:// и https://. Если по какому-то адресу он оказался недоступным, то нужно срочно искать причину и решать эту проблему.
3. Настройка сайта
После успешной настройки сертификата на сервере можно заняться настройкой сайта. Здесь тоже придется попотеть.
Настройка директивы Host в файле robots.txt
Сайт на http и https для поисковых систем это два совершенно разных ресурса. Если вы не позаботитесь о том, чтобы поисковые системы оставили лишь один сайт в поиске, то можете потерять значительную часть трафика.
Яндекс требует для новой версии сайта указать директиву Host в файле robots.txt, где явно прописать используемый протокол. Например, в моем robots это выглядит так:
Host: https://raybin.ru
Теперь Яндекс будет знать, что среди всех зеркал, указанное вами с протоколом HTTPS – самое главное.
Установка 301 редиректа с http на https
Раньше (еще в начале года) требовалось ждать, пока Яндекс переклеит зеркала, и уже потом перенаправлять пользователей. Это могло плохо повлиять на трафик из Google. Сейчас не обязательно ждать работу зеркальщика Яндекса, а можно сразу настраивать 301 редирект с HTTP версии на HTTPS .
Для большинства серверов подойдут такие строчки кода в .htaccess-файле:
RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]
Если этот код не сработает, то обратитесь в техподдержку хостинга за консультацией.
Исправление найденных ошибок
Проверьте все свои ссылки, доступность сайта, корректность перенаправлений, наличие замочка в адресной строке браузера, все должно работать идеально. Исправьте, если что-то работает не так.
4. Сообщение поисковикам о переносе
Чтобы снизить риски потери поискового трафика, обо всей проделанной вами работу нужно сообщить поисковикам. Но для этого не надо писать им на почту :) здесь нужно использовать панель для вебмастеров.
Добавление https-версии сайта в панель для вебмастеров
И в Google и в Яндексе необходимо добавить и подтвердить новый сайт, указав версию https. Теперь у вас в списке сайтов будет и та и другая версии. Для Google дополнительных настроек больше делать не надо, достаточно присутствия 301 редиректов.
Изменение адреса в панели для Яндекса
Для Яндекса необходимо у HTTP -сайта указать главное зеркало HTTPS . Делается это в панели для вебмастеров в меню “Настройка индексирования” — “Главное зеркало” — “Установить протокол HTTPS ”.
Перенос дополнительных настроек в панели для вебмастеров со старого хоста на новый
Если для старой версии сайта в панели у вас присутствовали дополнительные настройки, то их нужно перенести на новую версию, чтобы она воспринималась аналогично. Например, одни из важных настроек, которые надо проверить и перенести, это:
- Настройки региона (геотаргетинг)
- Файлы Sitemap.xml
- Список ссылок в Disawov Tool для Google
- Исключенные параметры URL для Google
5. Ожидание переиндексации
На этом все, ваш сайт и ваши пользователи защищены. Google и Яндекс со временем поменяют адрес вашего сайта в поиске.