Переводим сайт на https

В недавнем прошлом на защищенном соединении HTTPS были только серьезные сайты, примерно после 2010-2011 годов были массовые переходы на этот протокол в связи с участившимися взломами сайтов. Современные реалии нам диктуют такие правила, что поисковая система Google дает приоритет в выдаче для сайтов с защищенным протоколом, а многие браузеры предупреждают посетителей, что данный сайт ( который на протоколе HTTP ) небезопасен, будьте осторожны в совершении здесь определенных действий.

В недавнем прошлом на защищенном соединении HTTPS были только серьезные сайты, примерно после 2010-2011 годов были массовые переходы на этот протокол в связи с участившимися взломами сайтов. Современные реалии нам диктуют такие правила, что поисковая система Google дает приоритет в выдаче для сайтов с защищенным протоколом, а многие браузеры предупреждают посетителей, что данный сайт ( который на протоколе HTTP ) небезопасен, будьте осторожны в совершении здесь определенных действий.

Сейчас, с появлением SSL-сертификатов от Lets Encrypt, переход на защищенный протокол стал доступен и обычным смертным. Lets Encrypt - это автоматизированный Центр сертификации (CA), который предоставляет бесплатные SSL-сертификаты для всех желающих. Основная цель проекта Lets Encrypt - сделать интернет максимально защищенным, реализуя идею безопасного HTTPS соединения со всеми сайтами в мире по-умолчанию. Я предлагаю пошаговую инструкцию для полного перевода вашего проекта на HTTPS.

1. Подготовка сайта к переходу на защищенный протокол

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

- меняем по всему проекты ссылки внутренней перелинковки с абсолютных на относительные, не зависящие от протокола.

Например, https://www.webmancer.org/ - это абсолютная ссылка, а //www.webmancer.org/ - относительная. Таким образом, будет не важно, на каком протоколе сейчас работает сайт, потому что с такими ссылками страница будет ссылаться на тот же протокол, на котором она работает. Сделаю еще раз акцент на том, что мы меняем ссылки только там, где ссылаемся на свой сайт, потому что другие сайты могут не поддерживать наш протокол и тогда страница будет недоступна. Ссылки на другие сайты оставляем как есть.

- меняем по всему проекту протокол подключения медиаконтента.

имеются ввиду изображения и видео, которые отображаются на сайте.

Например, если вы подключаете в HTML изображение как

img src="https://www.webmancer.org/wp-content/uploads/2017/05/Egypt-Sharm-01-1024x576.jpg"
, то теперь его необходимо подключать как
img src="//www.webmancer.org/wp-content/uploads/2017/05/Egypt-Sharm-01-1024x576.jpg"

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

- подключение дополнительных файлов.

Имеются ввиду CSS и JavaScript файлы. Для них, так же, как и для изображений, делаем подключение через относительные пути.

Этот этап лучше всего сделать до перехода на HTTPS протокол. Для некоторых проектов этот этап может затянуться.

2. Отправляем запрос на подключение HTTPS

SSL-сертификаты бывают нескольких видов и устанавливать их нужно по-разному, в зависимости от необходимости и от специфики проекта. Я рассмотрю наиболее простой, бесплатный сертификат, который предоставляет проект Lets Encrypt и хостинг, которым я пользуюсь ( теперь это в прошлом ) для своих проектов. Все что нужно, это зайти в раздел SSL-сертификаты, нажать кнопку:

и выбрать свой домен. После этого начнется процесс получения сертификата для выбранного домена, например, у меня 2 сертификата:

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

3. Настройка сайта после получения SSL сертификата

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

— Настройка директивы Host в файле robots.txt

Нужно просто написать это:

Host: https://www.webmancer.org

так мы поможем поисковым системам определиться с версией протокола.

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

Данный пункт необходим для того, чтобы сразу перенаправлять пользователей с HTTP версии на HTTPS. Для большинства серверов подойдут такие строчки кода в файле .htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^webmancer.org$
RewriteRule ^(.*)$ //www.webmancer.org/$1 [NC,R=301,L]

Это одна из директив mod_rewrite, про другие варианты использования правил в .htaccess можно прочитать здесь.

— Исправление найденных ошибок Это один из финальных этапов работы над сайтом по переносу его на безопасный протокол. Проверьте свои ссылки, доступность сайта, откуда подключаются изображения и скрипты, есть ли замок в адресной строке браузера. Обязательно все нужно исправить.
В одном из проектов у меня была проблема с ссылками в контенте, который хранится в базе. Там везде были абсолютные адреса. Я вышел из данной проблемы тем, что перед выводом в браузер поставил следующий код:
$post->full_story = str_replace('https://www.webmancer.org','https://www.webmancer.org',$post->full_story);
подобным образом я исправляю внутреннюю перелинковку и мне не нужно ходить по нескольким тысячам статей, чтобы вручную исправить эти ссылки.

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

— Добавление https-версии сайта в панель для вебмастеров Google. Для Google сайт на HTTPS добавляется как отдельный сайт здесь. — Изменение адреса в панели вебмастеров Яндекса. У Яндекса это сделается здесь. В разделе Индексирование > Переезд сайт нужно поставить чекбокс Добавить HTTPS
— Перенос дополнительных настроек в панели для вебмастеров со старого хоста на новый Ну и финальные штрихи, если для старой версии сайта в панели у вас присутствовали дополнительные настройки, то их нужно перенести на новую версию, чтобы она воспринималась аналогично. Например, одни из важных настроек, которые надо проверить и перенести, это: – Настройки региона (геотаргетинг) – Файлы Sitemap.xml – Исключенные параметры URL для Google На этом все, теперь осталось только дождаться окончания индексации новых страниц. В этот период посещаемость может снизится. По крайней мере так это было у меня, но, в будущем все восстановится и даже улучшится. А как же иначе! Хочу дополнительно отметить, что если ваш сайт построен на системе wordpress, то для него нужно сделать некоторые действия, аналогичные для задачи переноса wordpress-сайта на другой домен.
Информация
Автор webmancer Нравится 0
Рейтинг 1 Не нравится 0
Голосов 1 Прочитали 1
Дата 2017-07-10 09:00:00 В избранном 0
Ваша реакция

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

Зарегистрироваться

Авторизоваться

На рекомендательном сервисе WEBmancer.Org только зарегистрированные пользователи могут комментировать и оставлять рецензии. Авторизованный пользователь так же может ставить отметки книгам, фильмам и другим постам. Вести учет прочитанных книг и просмотренных фильмов. Добавлять посты в избранное и иметь к ним быстрый доступ.