Перевод сайта на HTTPS вместе с HTTP/2 и их полезные плюшки

Следуя глобальному тренду перевода сайтов на использование защищенного протокола, перевел в декабре прошлого года несколько сайтов на HTTPS. С технической точки зрения процесс перехода оказался предельно простым, об этом позаботился как хостинг-провайдер, так и конечно же, и в первую очередь, сервис Let’s Encrypt, выпускающий бесплатные SSL-сертификаты для всех владельцев доменов, желающих защитить содержимое трафика к своим сайтам от перехвата.

Именно сервис Let’s Encrypt, предоставленный Internet Security Research Group (ISRG) при поддержке очень серьезных и крупных спонсоров (список можно посмотреть на сайте сервиса), позволил сделать переход на защищенный протокол поистине массовым: данные телеметрии от Мозиллы (Mozilla), разработчика браузера Firefox, показали, что уже 29 января 2017 года более 50% загружаемых страниц передавались пользователям по протоколу HTTPS:

Статистика от Google (Google’s Transparency Report) оказалось очень похожей:

Преимущества протокола HTTPS

Итак, что же дает использование защищенного протокола (Secure HTTP) на сайте?

Вспомним для начала 3 основные функции любого SSL-сертификата:

  1. Шифрование передаваемой информации;
  2. Аутентификация или проверка подлинности ресурса;
  3. Обеспечение целостности передаваемой информации.

Таким образом, зеленый замочек, отображаемый слева от адресной строки в браузере, показывает, что веб-ресурсу, к которому подключён сертификат, можно доверять.

Чтобы сделать более заметным факт отсутствия сертификата на сайте со страницами с полями для ввода каких либо отправляемых данных, последние версии популярных браузеров стали дополнительно помечать соединение с сайтом как небезопасное, например, в Chrome это текстовое сообщение, а в Firefox − перечеркнутый замочек. Все эти меры должны насторожить посетителей таких сайтов. Легко догадаться, что подобные надписи и сигналы постепенно начнут отпугивать их посетителей.

Вполне может быть, что на сайте нет никаких форм для сбора и передаче данных. Нужен ли такому сайту SSL-сертификат?

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

Нередко бывает, что владельцы бесплатных Wi-Fi точек доступа встраивают в страницы загружаемых через них сайтов свою рекламу, способную легко испортить впечатление от их просмотра. При этом посетитель сайта может даже не догадаться, что эту рекламу ему «предложил» вовсе не владелец сайта, а хозяин точки доступа в Интернет. В случае открытия сайта по HTTPS протоколу подобное невозможно − нельзя встроить свой HTML-код в зашифрованный трафик.

Другой вариант. Иногда случается, что сайты на виртуальном хостинге взламывают и в коде страниц может появиться чужой вредоносный JavaScript код, подгружающий некие дополнительные скрипты с хакерских ресурсов. Как правило, такая загрузка идет по незащищенному протоколу и на обычном сайте может быть визуально не заметна. В подобной ситуации при использовании протокола HTTPS зеленый замочек рядом с адресом сайта исчезнет и появится значок, предупреждающий о небезопасной загрузке части контента страниц — очевидный сигнал проверить, откуда вдруг появился незащищенный трафик при загрузке страниц.

И это еще не все. Использование HTTPS позволяет перейти на новый протокол HTTP/2Для большинства браузеров (Firefox, Chrome, Safari, Opera, IE, Edge) возможно использование HTTP/2 только поверх TLS, поэтому у большинства хостеров возможность его включения реализована лишь для доменов с установленным SSL сертификатом.

Когда я перевел этот блог на работу через защищенное HTTPS соединение, автоматически включилось и использование HTTP/2:

Преимущества протокола HTTP/2

Самой практически важной особенностью HTTP/2 является то, что он в отличии от своего предшественника не требует отдельного запроса браузера к серверу к каждому файлу картинки, стиля или скрипта, ссылки на которые присутствуют в загружаемой странице.

Этот факт очень сильно меняет традиционные рекомендации по повышению скорости загрузки страниц сайтов, учитывающие особенности протоколов HTTP1 / HTTP/1.1.

Например, ранее рекомендовалось объединять файлы JS и CSS в один (производить их конкатенацию), а также использовать спрайты изображений вместо одиночных картинок, и все это для того, чтобы уменьшить количество запросов браузера к серверу при загрузке страницы. При использовании HTTP/2 такой способ оптимизации потерял свою актуальность.

Что касается использования CDN вместе с HTTP/2, то его пользу никто не отменял, CDN все еще полезны, т.к. способны отдавать контент значительно быстрее, чем среднестатистические веб-сервера.

При этом отпала необходимость использовать в отдельных случаях для очень крупных сайтов несколько различных доменов CDN (domain sharding) из-за ограничения HTTP/1 только в восемь параллельных подключений, потому что протокол HTTP/2 избавляет от необходимости в параллельных соединениях, поскольку позволяет параллельно загружать файлы внутри одного соединения. Более того, использование с HTTP/2 большого количества CDN добавляет дополнительные DNS-запросы, что только замедлит, а не ускорит загрузку сайта — тот самый случай, когда прежний способ оптимизации быстродействия сайта становится вредным.

Влияние перехода на HTTPS на трафик

Для поисковых системы один и тот же сайт, открываемый по HTTP и HTTPS — это разные сайты, поэтому первое время неизбежна некоторая просадка по трафику. Интересно, что Google и Яндекс дают разные рекомендации по переходу, чтобы минимизировать эти потери,  и при этом местами они противоречат друг другу в своих рекомендациях, но что поделать. Описания можно найти во многих местах, например, на сайте seonews.ru, произведя поиск по сайту по слову «https» (без кавычек), а также на просторах Рунета, конечно же.

Вопросом реального влияния перехода заинтересовался Алексей Трудов и опубликовал в своем блоге интересное исследование на эту тему, за что ему отдельное спасибо. Результаты интересные, графики падения и восстановления трафика заметно отличаются в Яндексе и Google, как и следовало ожидать.

PS. О том, как подключить бесплатный SSL-сертификат на хостинге Бегет, подробно написано здесь. Евгений Попов — известный в Рунете создатель курсов на темы создания сайтов, также записал наглядный скринкаст об этом, включив его в свою подробную статью о том, как переходить на HTTP и почему это важно:

Для принудительного редиректа с HTTP на HTTPS версии на сайтах с WordPress и Drupal у меня хорошо сработал следующий код, добавленный в файл .htaccess, где «sitename.ru» нужно заменить на адрес своего сайта:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^(.*)$ https://sitename.ru/$1 [R=301,L]

Понравилась статья? Поделитесь ссылкой в соцсетях:
blog comments powered by Disqus