Devaka: Как перенести сайт на HTTPs. Пошаговая инструкция



9,815 просмотров

Многие серьезные проекты использовали HTTPS ещё в 2000х, часть перешли на защищенный протокол в 2010-2011, когда был большой бум из-за утилит иранского хаккера Марлинспайка Firesheep и SSLStrip, позволяющих воровать персональные данные с незащищенных сайтов. Совсем недавно правительство США поручило всем федеральным сайтам перейти в срочном порядке на HTTPS до конца 2016 года. И уже совсем скоро Mozilla Firefox перестанет поддерживать небезопасные HTTP-соединения в браузере. В связи с этим, предвидится новый бум и массовый переход на HTTPS. Рано или поздно вам тоже придется с этим столкнуться.

Чтобы сильно не рисковать незначительным снижением трафика, как раз летом, в отсутствие сезона, у вас есть время заняться переносом сайта с HTTP на HTTPS. Тем более, что Яндекс прекратил обновлять выдачу, а Google обещает давать приоритеты защищенным сайтам.

Как же перенести свой сайт на HTTPs? Ниже представлена пошаговая инструкция.

1. Подготовка сайта

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

— Смена ссылок внутренней перелинковки с абсолютных на относительные.

Относительные ссылки бывают двух типов:

1. Относительные вне зависимости от домена

https://devaka.ru/about/ — абсолютная.

/about/ — относительная.

2. Относительные вне зависимости от протокола.

https://devaka.ru/about/ — абсолютная

//devaka.ru/about/ — относительная

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

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

— Исправление вложений медиа-контента

Проверьте, какой медиа-контент (изображения, видео, презентации, и др.) вы используете у себя на сайте и по какому протоколу его запрашиваете. Здесь необходимо тоже все перевести в относительные адреса, и тогда при переходе на HTTPS у вас медиа-контент также будет подгружаться с защищенных сайтов. Но стоит убедиться, что он действительно доступен по HTTPS.

Если используемые вами картинки хранятся на вашем сайте, то просто используйте относительные адреса //site.ru/img/mega-image.jpg. Если вы подгружаете картинки с внешних ресурсов (CDN или других сайтов), то они также должны поддерживать HTTPS, иначе стоит отказаться от этих вложений.

  Как установить HTTPS локально без надоедливых уведомлений в браузере – Блог про WordPress

Популярные сервисы, которые позволяют внедрять свой контент, типа 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-сертификат.

  Зачем и как перевести сайт на HTTPS бесплатно и без ошибок?

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://devaka.ru

Теперь Яндекс будет знать, что среди всех зеркал, указанное вами с протоколом HTTPS – самое главное.

— Установка 301 редиректа с http на https

Раньше (еще в начале года) требовалось ждать, пока Яндекс переклеит зеркала, и уже потом перенаправлять пользователей. Это могло плохо повлиять на трафик из Google. Сейчас не обязательно ждать работу зеркальщика Яндекса, а можно сразу настраивать 301 редирект с HTTP версии на HTTPS.

Для большинства серверов подойдут такие строчки кода в .htaccess-файле:

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

Если этот код не сработает, то обратитесь в техподдержку хостинга за консультацией.

— Исправление найденных ошибок

Проверьте все свои ссылки, доступность сайта, корректность перенаправлений, наличие замочка в адресной строке браузера, все должно работать идеально. Исправьте, если что-то работает не так.

  Кейс: как безопасно перейти на протокол HTTPS

4. Сообщение поисковикам о переносе

Чтобы снизить риски потери поискового трафика, обо всей проделанной вами работу нужно сообщить поисковикам. Но для этого не надо писать им на почту 🙂 здесь нужно использовать панель для вебмастеров.

— Добавление https-версии сайта в панель для вебмастеров

И в Google и в Яндексе необходимо добавить и подтвердить новый сайт, указав версию https. Теперь у вас в списке сайтов будет и та и другая версии. Для Google дополнительных настроек больше делать не надо, достаточно присутствия 301 редиректов.

— Изменение адреса в панели для Яндекса

Для Яндекса необходимо у HTTP-сайта указать главное зеркало HTTPS. Делается это в панели для вебмастеров в меню “Настройка индексирования” — “Главное зеркало” — “Установить протокол HTTPS”.

— Перенос дополнительных настроек в панели для вебмастеров со старого хоста на новый

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

– Настройки региона (геотаргетинг)

– Файлы Sitemap.xml– Список ссылок в Disawov Tool для Google– Исключенные параметры URL для Google

5. Ожидание переиндексации

На этом все, ваш сайт и ваши пользователи защищены. Google и Яндекс со временем поменяют адрес вашего сайта в поиске.

Смотрите также мой вебинар про особенности перехода на https и возможные проблемы и их решение.

Версия для печати

Если вам понравилась статья, вы можете подписаться на RSS или E-mail рассылку. Для получения обновлений по электронной почте, введите ваш e-mail адрес в эту форму (Доставка от FeedBurner):


https://devaka.ru/articles/moving-to-https

Губарь Маргарита Александровна