Во время длительных новогодних праздников я решил заняться переводом своих сайтов на работу по https. Начать решил с этого блога. Как видите, перед адресом сайта теперь стоит https, а слева от него красуется зеленый замочек, свидетельствующий о том, что все передаваемые данные между сайтом и вашим браузером шифруются. Так что переезд можно считать удачным.
Пока с момента переезда сайта на https прошло немного времени, и я хорошо помню все необходимые действия, хочу поделиться с читателями блога полезной информацией по переводу сайта на https.
Содержание
Зачем нужен https для сайта?
Начать хочу с вопроса, а нужен ли https сайту? Раньше большинство сайтов работало просто по http (без шифрования) и никого это не волновало. И только сайты, на которых надо было вводить секретные данные типа номера банковской карточки, работали по https (в основном это были сайты банков, платежных систем и т.п.).
Но в последние пару лет начался массовый переезд сайтов на https. Что это дает рядовому пользователю? Провайдеры, через которые проходит трафик от сайта к пользователю, и спецслужбы не смогут собирать статистику о том, какие сайты он посещает. Кроме того, на сайтах, где надо логиниться, злоумышленники не смогут перехватить ваш пароль (особенно актуально в кафе с бесплатным WiFi, т.к. владелец такой точки доступа может перехватывать весь трафик).
С точки зрения вебмастера с простым сайтом на WordPress переход на https дает защиту пароля к админке. В принципе, этого уже достаточно, чтобы задуматься о безопасности. Но есть еще один большой жирный плюс в пользу перехода на https. И называется он Google.
С января этого года Google в своем браузере Chrome начал помечать сайты, принимающие данные от пользователей не по https, как небезопасные (источник).
Если у вас простой блог, то пока можно не волноваться, но со временем такая политика может распространиться на все сайты. Кроме того, наличие https может влиять на ранжируемость сайта в ПС.
Где взять SSL сертификат
Итак, если вы решили сделать вас сайт доступным по https, вам понадобится ssl сертификат. Для чего он нужен? Он подтверждает ваши права на домен и содержит уникальные ключи шифрования, с помощью которых и происходит шифрование трафика (это очень упрощенное объяснение).
Практически все хостинг провайдеры и регистраторы доменов предлагают выдачу ssl сертификатов за деньги. Именно финансовый вопрос до недавнего времени был главным препятствием для перехода большинства сайтов на https. Но с появлением центра выдачи сертификатов Let’s Encrypt каждый владелец домена может получить ssl сертификат совершенно бесплатно.
Как сделать https для сайта?
Получение бесплатного сертификата и настройка сайта для работы по https подробно расписаны как на сайте Let’s Encrypt, так и на множестве других сайтов. Я действовал по этой инструкции с Хабра. Там довольно подробно все расписано и если вы сами настраивали свой VPS, то сможете настроить и https.
А что делать, если ваш сайт работает не на VPS, на shared хостинге? Подумайте о переходе на VPS (я рекомендую DigitalOcean, см. мой обзор), это сейчас совсем недорого. Если же вы не готовы разбираться с настройкой собственного сервера, то можно воспользоваться услугами шаред хостинга с поддержкой сертификатов Let’s Encrypt. Я рекомендую TimeWeb.
Миграция сайта на WordPress с http на https
Итак, вы получили ssl сертификат и произвели необходимые настройки на вашем хостинге для корректной работы сайта по https. Но это еще не все. Страницы сайта будут отдаваться по https, но на них могут быть http ссылки на изображения. Из-за этого замочек в браузере возле имени сайта будет оранжевого цвета.
Чтобы все было идеально, вам придется поменять все внутренние ссылки на изображения (и другие ресурсы типа CSS и JavaScript) вида http://example.com/ на //example.com/. Можно, конечно, явно указать https://example.com/, но тогда в случае необходимости у вас будут проблемы с возвратом на http. Поэтому ссылки вида //example.com/ более предпочтительны, т.к. в этом случае браузер будет использовать тот же протокол, по которому загружена страница.
“Неправильные” ссылки могут быть как в файлах темы, так и в постах. Как правило, все современные темы умеют правильно определять нужный протокол и, возможно, вам не придется ничего менять в вашей теме. Что касается постов, то для замены можно воспользоваться плагином Search & Replace.
Также, у вас на сайте могут быть ссылки на внешние ресурсы, начинающиеся на http://. Если они доступны по https, то их, также, надо заменить на //. Если нет, то можно скопировать их к себе на сайт или убрать совсем.
Обратите внимание, что менять протокол надо только у тех ресурсов, которые загружаются на вашей странице. Обычные внешние ссылки могут начинаться как на https:// так и на http://, это нормально. Причем, их нельзя менять просто на //.
Передача Referrer
Если специально не указать, то при переходе с https сайта по внешней ссылке на другой сайт, браузер не будет передавать referrer. Иногда это может быть полезно (например, для варезников), но если вы размещаете прямую рекламу, то для рекламодателя такое поведение будет означать, что с вашего сайта нет переходов и, следовательно, реклама не эффективна.
Чтобы referrer по прежнему передавался надо прописать мета тег:
1 |
<meta name="referrer" content="origin"> |
Сделать это надо между тегами <head> и </head>. Для сайтов на wordpress изменения надо внести в файл header.php.
Подводные камни перехода с http на https
Прежде, чем окончательно решиться на перевод сайта на https, надо сознавать возможные негативные последствия, среди которых временное падение трафика и обнуление ТИЦ (тоже временное). К сожалению, эти недостатки пока присутствуют и если вы не хотите рисковать временно потерять большую часть трафика, то, возможно, имеет смысл подождать с переходом (возможно, в будущем ПС научатся более адекватно реагировать на смену протокола).