Опыт переноса проекта на HTTPS
14 августа 2015 — 10:33
В данной статье я хотел бы рассказать о собственном опыте переноса проекта с HTTP на модный HTTPS.
Немного теории: главное преимущество HTTPS-соединения перед HTTP заключается в поддержке шифрования. Это позволяет защитить передаваемый между клиентом и сервером трафик от возможного перехвата с целью расшифровки. Поэтому HTTPS настоятельно рекомендуется использовать на сайтах с большим количеством заполняемых пользователями форм — от контактной информации до платёжных реквизитов.
В моём случае у меня в распоряжении был как раз такой проект, а также свободное время и желание поэкспериментировать. Проект представляет из себя сервис для ведения отчётов по заполнению сайтов контентом, поэтому в нём просто огромное количество всевозможных форм для отправки данных на сервер. HTTPS в данном случае — то, что доктор прописал.
Выбор сертификата
Первым делом нужно определиться с типом SSL-сертификата. Есть множество статей, подробно описывающих каждый из них, поэтому я не стану их пересказывать, а лишь приведу свои выводы.
Во-первых, можно обойтись вообще без покупки сертификата, сгенерировав его самостоятельно и установив затем на сервер. Однако при первом заходе на такой сайт у каждого посетителя в браузере будет предупреждение о самоподписанном сертификате, что может вызвать если не подозрения, то как минимум раздражение от всплывающего окна с уведомлением. В моём случае такой вариант был неприемлимым, так как хотелось дать пользователям уверенность в безопасности работы с сервисом.
Во-вторых, не все сертификаты могут использоваться физическими лицами, а те, что могут, имеют ряд ограничений. Видели красивые зелёные надписи в адресной строке браузера перед самим доменом? Такой эффект создаёт SSL-сертификат с опцией EV, но такие сертификаты недоступны физическим лицам, увы.
В итоге для проекта был выбран один из самых дешёвых сертификатов для физических лиц — Thawte SSL123.
Подготовка сайта
После приобретения сертификата потребовалось установить его на сервер. По полученной от продавца инструкции мне это сделать не удалось, поэтому я обратился в техподдержку своего хостинга и уже через 5 минут всё функционировало нужным образом.
Затем осталось лишь выкатить уже подготовленную версию проекта с переписанными внутренними ссылками, исправленным robots.txt и настроенным редиректом с HTTP на HTTPS. Пошаговую инструкцию по подготовке сайта к HTTPS можно найти в одной из предыдущих записей. Захожу на сайт — вуаля, всё работает!
Подводные камни
Прошло полгода с момента перехода проекта на HTTPS и сейчас я могу назвать несколько проблем, с которыми я столкнулся.
Очень важно, чтобы абсолютно все ссылки на подгружаемый контент были через https. Сюда относятся скрипты, файлы стилей, изображения и даже веб-шрифты. В случае, когда ваш HTTPS-сайт подгружает какой-либо файл через HTTP-подключение, могут быть уведомления о том, что предоставляемая https защита перестала работать на 100%. Более того, часть браузеров может вообще не загружать такое смешанное содержимое, что в свою очередь приведёт к потере работоспособности сайта.
Совершенно неожиданной оказалась другая проблема. Когда я открыл панель разработчика в Firefox, чтобы поправить пару ошибок в вёрстке, я увидел повторяющееся предупреждение:
Если перейти по указанной ссылке, то можно узнать, что SHA-1 устарел и его использование в данный момент настоятельно не рекомендуется. И хотя пока что это никак не проявляется визуально для обычного посетителя, но нельзя дать гарантию, что в ближайшем времени разработчики браузеров не решат использовать более решительные меры. Поэтому для себя я решил оформить другой тип сертификата через полгода, когда действие текущего сертификата истечёт. Читателям блога тоже рекомендую заострить на этом внимание в момент выбора типа сертификата — ни в коем случае не выбирайте SHA-1.
Приятные моменты
Несомненно, пользы от HTTPS тоже достаточно. Лично мне было приятно даже просто видеть значок замочка в адресной строке браузера. Кроме того, в моём случае подключение HTTPS совпало с переездом проекта на другой домен, купленный в своё время у киберсквоттера. Я даже не поленился и разместил об этом новость на главной странице сайта.
Ещё один плюс в моём случае это возможность использовать ссылки на картинки через HTTPS-протокол. Дело в том, что в проекте используется система уведомлений клиентов через e-mail — например, о новых тикетах или о низком балансе. Для таких уведомлений я сверстал красивые шаблоны писем, содержащие помимо прочего иконки. Почтовые клиенты предъявляют ряд требований к графике в письмах, одно из них это ссылка через HTTPS. И если до подключения SSL мне приходилось использовать практически одноразовые ссылки с HTTPS-хостингов изображений, то теперь всё сделано по-человечески и используя только лишь собственные ресурсы.
HTTP или HTTPS?
Сейчас наблюдается активное лоббирование перехода на HTTPS — инициатива исходит как от поисковых систем, так и от производителей браузеров. Я советую не упускать момент и перевести на безопасное соединение хотя бы наиболее важные проекты.
Автор: Истляев Максим, представитель сервиса автоматизации размещения в биржах вечных ссылок Posting.ru.
Источник: Максим Истляев
Валерий
14.08.15 3:49
А что если, применить это к интернет-магазину? какие могут быть проблемы? какая может быть польза?