Как перенести сайт на HTTPS

Возможность перейти на HTTPS появилась еще в начале 2000х годов. И многие крупные проекты сразу же сделали это. Причина очень проста: таким образом сайт гарантирует своим пользователям, что их соединение не будет перехвачено сторонними лицами.

Второй БУМ произошел в 2010м. Он был обусловлен действиями иранского хакера, который наловчился перехватывать соединения между сайтом и пользователем и использовать собранные данные в своих корыстных целях.

Для того, чтобы перенести сайт с HTTP на  HTTPS придется потратить немного сил и времени. Лучше всего делать это среди недели или в летнее время, когда большинство пользователей предпочитает интернету отдых на свежем воздухе. Технология, хоть и отлажена, иногда дает сбои. Изредка сайт может быть недоступен. Поэтому, с особым тщанием подбирайте время переноса.

Ну а теперь, когда с историей и предостережениями покончено, перейдем к практике и начнем перенос сайта с HTTP на HTTPS.

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

Для начала необходимо конвертировать все ссылки с абсолютных на относительные. Делать это нужно лишь в том случае, если вы пользуетесь самописным движком или же у вас вовсе на сервере хранятся *.html документы. Все современные движки (WordPress, Joomla, Open Cart и т.д. ) и так используют исключительно относительные ссылки. Однако же, все равно стоит проверить – это будет не лишним.

Виды ссылок:

  1. https://vk.com/feed — абсолютная;
  2. //vk.com/feed – относительная вне зависимости от протокола;
  3. /feed – относительная вне зависимости от домена.

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

Кстати, для поддоменов тоже можно использовать относительные ссылки. Это никак не повредит. Наоборот, улучшит индексацию страниц.

Проверка медиафайлов

Все медиафайлы тоже обязательно должны быть доступны по HTTPS. В этом нудно убедиться сразу же после исправления ссылок на страницы. Если контент доступен по защищенному протоколу, то все ссылки, ведущие на файлы, тоже приводим к относительному виду.

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

Хочу сразу сказать пару слов, которые сэкономят вам немало времени. Если весь контент у вас подгружается с популярных сервисов, таких как Вконтакте, Ютуб, Фейсбук, Однокассники и так далее, то нет смысла терять время на проверку. Они все уже давно сидят на HTTPS. А вот если медиаконтент притягивается с малопопулярных ресурсов, то не ленимся и проверяем.

Подключение внешних скриптов

Внешние скрипты тоже переводим на относительные ссылки. Для примера возьмем подключение библиотеки 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>

И это касается любых скриптов, которые ссылаются на сторонние ресурсы: Яндекс.Метрика, Яндекс.Директ, Google Analytics и все прочие.

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

как перейти на HTTPS

2. Установка сертификата

Теперь приступаем к выбору и приобретению SSL-сертификата. Кстати «приобретение» не обязательно подразумевает покупку. В другой моей статье рассказано, как получить такой сертификат абсолютно бесплатно.

Сертификатов существует несколько видов. Определитесь, какой из них подходит вам больше всего:

  • Обычный. Выдается самим регистратором домена. На почту приходит ссылка, кликнув по которой, можно получить сертификат. Быстро и просто. Но эта ложка меда купается в бочке дегтя – браузеры очень не любят такой сертификат и выдают перед глазами пользователей окно со страшными красными надписями;
  • EV (расширенная проверка). Подходят только для юридических лиц. Проверяется не только доменное имя, но и компания, на которую регистрируется сертификат. Информация берется из государственного реестра, поэтому данный сертификат и не подходит для частных лиц. Проверка очень строгая и включает в себя как анализ whois сайта, так и проверочные звонки в саму компанию;
  • Wildcard. Выдается на все поддомены. Лучший вариант, если имеется множество сайтов на одном домене;
  • IDN. Не каждый сертификат поддерживает кириллические доменные имена. А SSL сертификат с поддержкой IDN справляется с этим просто отлично.

Установка сертификата на хостинг

Очень простой момент. Установить сертификат можно прямо из панели управления хостинга. Если же появились затруднения с этим, то можно обратиться в техподдержку за помощью. Причем, если набраться наглости, то можно попросить не совета, а услуги по установке сертификата. Если не прокатило, то наймите программиста. Делается это за пару минут.

Нужно учитывать, что хостинг обязательно должен поддерживать SSL. В противном случае ничего хорошего не выйдет. Но, если ваш хостер не поддерживает сертификат, то можно или подождать – скоро обязательно откроется поддержка сертификата или уйти от этого тормоза к более продвинутой компании.

Проверяем доступность HTTPS

Проверяем доступность. Для этого набиваем адрес сайта дважды. Сперва в виде http://vk.com, а потом https://vk.com. Если оба варианта открывают требуемую страницу, то все хорошо. В противном случае ищем, где накосячили. Если все правильно, то пишем хостеру гневный тикет.

3. Настройка сайта

Осталось совсем немного. Всего несколько шагов и весь титанический труд будет закончен.

Настройка robots.txt

Поисковые системы не собираются думать за вебмастеров. Поэтому, если не указать им явно, какую версию сайта отображать, то часть трафика будет отправляться на http (поисковики один и тот же сайт по HTTP и HTTPS считают за два разных). Поэтому, нужно немного отредактировать строку HOST  в файле robots.txt:

Host: https://vk.com

перевод robots.txt на https

Вот теперь Яндекс будет точно знать, что всех посетителей нужно отправлять на защищенное соединение.

Установка 301 редиректа на HTTPS

Для этого редактируем /htaccess и добавляем в него следующие строки:

RewriteCond %{SERVER_PORT} !^443$ 

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

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

     

  1. Сообщаем поисковым машинам о переходе на HTTPS

Ну и куда же без них, великих поисковиков? Выполняем следующие шаги:

  1. В Яндекс и Гугл добавляем сайт по новой. Но указываем, что он стал HTTPS. Как итог – количество сайтов в панелях управления станет в два раза больше;
  2. Для Яндекса настраиваем главное зеркало. Оно должно явно указывать на HTTPS. Заходим «Настройка индексирования – Главное зеркало – Установить протокол HTTPS»;
  3. Переносим настройки. Если для старой версии сайта у вас были указаны геометки, файлы Sitemap.xml, список ссылок в Disawov Tool для Google и так далее, то их нужно заново указать для новых версий сайта в панели для вебмастеров.

5. Индексация

Ну вот и все. Теперь осталось ожидать только переиндексации сайта. Со следующим обновлением ссылки на него уже будут иметь гордую букву S в протоколе передачи данных.