Как перевести сайт на HTTPS и почему это важно

Примечание: Этот текст может содержать некоторые партнерские ссылки, а это значит, что я зарабатываю небольшую комиссию без каких-либо дополнительных затрат с вашей стороны, если вы воспользуетесь этими ссылками. Спасибо за понимание и поддержку.

https

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

Итак, поехали.

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

Для примера возьмем ситуацию с сервисом рассылок.

Например, вы зашли на сайт своего сервиса рассылок и вам надо войти в личный кабинет.

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

Вот тут начинается самое интересное. Если сайт сервиса рассылок работает по протоколу HTTP, то данные между вашим браузером и сайтом сервиса будут ходить в незашифрованном виде. Это означает, что если вы заполнили форму и ввели туда, например, логин: ivan@mail.ru и пароль: 12345678, то в таком виде они и будут отправлены на сервер.

В чем здесь проблема? Проблема в том, что злоумышленник может с помощью специальных программных и аппаратных средств «прослушать» ваш канал связи и легко перехватить эти данные. Особенно, если вы работаете в каком-то публичном месте и используете бесплатный Wi-Fi. А узнав ваши данные, злоумышленник спокойно зайдет под ними на сайт сервиса рассылок и разошлет спам по вашим базам.

Также не стоит забывать, что, как правило, соединение между браузером и конечным сервером не прямое, а на своем пути содержит много промежуточных узлов, на любом из которых потенциально можно «прослушать» проходящий трафик.

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

Но к счастью, есть способ защитить канал связи между браузером и сервером. Суть его в том, что надо перевести сайт на работу по защищенному протоколу HTTPS. «S» в конце — это сокращение от Secured (защищенный). О том, как перевести сайт на HTTPS, мы поговорим чуть ниже, а пока давайте представим, что наш сервис рассылок перевел свой сайт на HTTPS и мы снова на него зашли.

Теперь при входе  сервер отправляет нашему браузеру специальный сертификат. В нем содержится разная информация, в том числе информация о том, кто выдал этот сертификат, информация о самом сайте (наш браузер будет точно знать, что он работает с нужным сайтом), до какого числа он действителен и самое главное — открытый ключ шифрования, с помощью которого наш браузер после определенных процедур и будет шифровать все передаваемые данные. На стороне сервера есть второй ключ (приватный), с помощью которого сервер будет расшифровывать получаемые от браузера данные.

Если наш браузер проанализировал сертификат и пришел к выводу, что он действительно выдан надежным источником и срок его действия еще не истек, то наш браузер и сервер «договариваются» о том, что они будут обмениваться данными в зашифрованном виде.

В этот момент в строке браузера вы увидите либо зеленый замочек, либо зеленую полоску.

1

Зеленый замок, говорит о том, что между нашим браузером и сервером сайта установлено HTTPS-соединение. Это значит, что  весь обмен данными происходит в зашифрованном виде.

Теперь, когда мы вводим свои данные, например, логин: ivan@mail.ru и пароль: 12345678 и нажимаем кнопку «Войти», эти данные летят на сервер, например, так: 8c2c69d1154f28be317480433f25a76a. Сервер получит эти данные и с помощью своего приватного ключа превратит их обратно в логин: ivan@mail.ru и пароль: 12345678.

Таким образом, даже если злоумышленник сможет перехватить зашифрованную информацию (в нашем случае 8c2c69d1154f28be317480433f25a76a) и открытый ключ, то он все равно не сможет ее расшифровать, т.к. сделать это можно только приватным ключом, который находится на стороне сервера.

Точнее говоря, при желании он сможет ее расшифровать , но ему на это потребуется, как минимум, несколько лет, а за это время срок жизни сертификата уже закончится, но об этом позже.

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

Каким сайтам нужно переходить на протокол HTTPS?

Если отвечать коротко, то — всем. Это связано с тем, что уже с начала 2017-го года браузер Google Chrome будет помечать некоторые сайты без HTTPS как небезопасные и понижать в выдаче поисковых систем.

А вообще все идет к тому, что в будущем сайтов без HTTPS вообще не останется. HTTPS для сайта — это что-то вроде паспорта для человека в реальной жизни. Также как в жизни мы не будем заключать договор с человеком без паспорта, также и браузеры не будут взаимодействовать с сайтом без возможности шифрования передаваемых данных.

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

Чтобы перевести ваш сайт на работу по протоколу HTTPS вам понадобится так называемый SSL-сертификат.

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

Первое, что вам надо знать — сертификаты различаются по их происхождению. Здесь всего два варианта.

1. Самоподписанные сертификаты (Self-Signed).

Мне понравилось, как об этом виде сертификатов написано на сайте sslcertificate: «Самоподписанный (самозаверенный) сертификат вы можете и выпустить, и подписать самостоятельно. Но он обладает низкой степенью доверия и надежности, как и паспорт, который вы нарисуете и выдадите сами себе.»

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

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

Как результат — пользователь при заходе на такой сайт будет видеть предупреждение о том, что сертификат не удалось проверить, поэтому с этого сайта лучше поскорее уйти.

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

2. Доверительные (Trusted) — такие сертификаты выдаются специальными центрами сертификации.

Центр сертификации — компания, которая занимается предоставлением SSL-сертификатов. Особенность этих центров заключается в том, что они выдают сертификаты, которые официально признаны во всем мире и всегда распознаются веб-браузерами пользователей. Это происходит через систему корневых сертификатов, которые установлены в браузерах.

Заходя на сайт, защищенный сертификатом известного центра сертификации, посетитель чувствует себя гораздо уверенней и не сомневается в безопасности своих данных. Помимо этого, каждый сертификат от центра подкреплен гарантией, представляющей из себя денежную компенсацию в случае его взлома. Самые известные центры сертификации: Comodo, Symantec (поглотил известные центры VeriSign, Thawte, Geotrust), RapidSSL, GlobalSign, AlphaSSL.

Все, что будет написано далее, относится именно к доверенным сертификатам от сертификационных центров.

Теперь давайте разбираться с типами таких сертификатов.

Сертификаты отличаются по уровню проверки.

1. SSL-сертификат с проверкой домена (Domain Validated или DV). Доступен физлицам и компаниям.

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

Обычно, чтобы получить такой сертификат в центре сертификации или у его партнера, достаточно подтвердить владение доменом. Для подтверждения домена владельцу отправляется письмо с ссылкой на E-mail ящик в домене сайта либо на E-mail, указанный в WHOIS домена. Клик по ссылке подтверждает владение доменом.

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

2. SSL-сертификат с проверкой организации (Organization Validated или OV). Доступен только компаниям.

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

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

Такие сертификаты выдаются в срок от одного до трех дней. Стоимость здесь уже выше (от 2620 руб/год).

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

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

3. SSL-сертификат с расширенной проверкой (Extended Validation или EV). Доступен только компаниям.

Это самые дорогие сертификаты, и получить их сложнее всего. В таких сертификатах есть так называемый «green bar» — то есть при входе на сайт, где установлен такой сертификат, в адресной строке многих браузеров посетитель видит зеленую строку, в которой будет указано название организации, получившей сертификат.

Вот как это выглядит при заходе на сайт банка Тинькофф в браузере Opera:

2

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

SSL-cертификаты с расширенной проверкой (EV) выпускаются, только когда центр сертификации (CA) выполняет две проверки, чтобы убедиться, что организация имеет право использовать определенный домен, плюс центр сертификации выполняет тщательную проверку самой организации. Процесс выпуска сертификатов EV стандартизирован и должен строго соответствовать правилам EV, которые были созданы на специализированном форуме CA/Browser Forum в 2007 году. Там указаны необходимые шаги, которые центр сертификации должен выполнить перед выпуском EV сертификата.

Расширенная проверка занимает от 3 дней до 9 дней.

Это самый дорогой тип сертификата (от 10 447 руб/год).

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

Сертификаты отличаются по количеству доменов, на которые распространяется их действие.

SSL-сертификат для одного домена — защищает один домен (на поддомены кроме www его действие не распространяется).

Мультидоменный SSL-сертификат — защита до 100 доменных имен одним сертификатом. При покупке обычно в цену уже включена защита трех доменов, остальные просто докупаются.

SSL-сертификат Wildcard — защищает домен и все его поддомены. Удобно, когда у вас на сайте есть много поддоменов, которые также должны работать по HTTPS.

Также вы можете встретить такие сертификаты, у которых есть дополнительные возможности:

SSL-сертификат с опцией IDN — сертификат, поддерживающий национальные домены (например .рф, .рус и т.д.).

SSL-сертификат с технологией SGC — этот вид сертификатов уходит в прошлое. Он позволяет посетителям со старыми браузерами использовать современное 128- и 256-битное шифрование, которое изначально ими не поддерживается. Сейчас все меньше пользователей использует устаревшие версии браузеров, которые поддерживали слабое шифрование, поэтому необходимость использования SSL-сертификатов
с SGC сегодня сводится к нулю, в связи с чем такие центры сертификации как Comodo и Thawte уже прекратили выпуск этих SSL-сертификатов. Хотя, при желании, их еще можно найти.

Есть и другие виды сертификатов (Code Signing сертификат, сертификат электронной почты (S/Mime) и другие), но к сайтам они отношения не имеют.

Теперь, обладая этими знаниями, вы легко сможете ориентироваться в типах сертификатов. Вот пример того, как это выглядит на сайте firstssl.ru

ssl

Как определить какой сертификат подходит для вашего сайта?

Здесь все просто.

Шаг 1. Определяемся с типом сертификата по уровню проверки.

Если у вас просто блог, новостной или развлекательный портал, сайт визитка и т.д. выбираем обычный самый дешевый либо вообще бесплатный SSL-сертификат с проверкой домена (Domain Validated или DV).

Если ваш сайт связан с приемом заказов или вы собираете и храните личные данные пользователей, то лучше выбрать SSL-сертификат с проверкой организации (Organization Validated или OV).

Если же у вас что-то типа платежной системы, банка или страховой компании и пользователи передают вам очень ценные данные (например, данные кредитных карт), то лучше выбрать SSL-сертификат с расширенной проверкой (Extended Validation или EV)

Шаг 2. Определяемся с типом сертификата по количеству доменов/поддоменов.

Если вам надо защитить только один домен, то значит вам нужен SSL-сертификат того типа, что вы выбрали на первом шаге для одного домена.

Если вам надо защитить один домен и все его поддомены, то значит вам нужен SSL-сертификат того типа, что вы выбрали на первом шаге с опцией Wildcard. Либо несколько одиночных сертификатов (для каждого поддомена свой).

Если вам надо защитить одним сертификатом несколько ваших доменов, то значит вам нужен SSL-сертификат того типа, что вы выбрали на первом шаге с опцией MULTI-DOMAIN.

Итак, допустим вы определились, что вам нужен SSL-сертификат с проверкой домена (Domain Validated или DV) для одного домена, что дальше?

Как и где заказывать сертификат?

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

Центров сертификации существует достаточно много, вот перечень самых популярных:

Symantec (также в его состав входят такие центры как Verisign, Thawte и Geotrust), Comodo, Trustwave, RapidSSL, GlobalSign, AlphaSSL.

Самый крупный игрок на рынке SSL сертификатов — это Symantec, который владеет тремя крупными центрами сертификации: Thawte, Verisgin и Geotrust.

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

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

Примеры партнеров, у которых можно купить сертификаты дешевле, чем если брать напрямую:

firstssl.russlcertificate.russl.com.ua

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

Можно ли получить SSL-сертификат бесплатно?

Да, такая возможность есть, но здесь есть несколько ограничений.

Во-первых, бесплатно можно получить только самый простой вариант сертификата (с проверкой домена DV) без опций Wildcard или Multi-domain.

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

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

Два лидирующих бесплатных центра сертификации:

https://www.startssl.com

https://letsencrypt.org

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

Как выглядит процесс покупки/получения сертификата?

Рассмотрим процесс на примере самого простого сертификата с проверкой домена (DV).

Шаг 1. Регистрируемся на сайте центра сертификации или на сайте партнера.

Шаг 2. Выбираем тип сертифката, который нам нужен. Например, сертификат для одного домена с минимальной проверкой (DV).

Шаг 3. Генерируем CSR-запрос на сертификат. CSR (Certificate Signing Request) — это запрос на получение сертификата, который представляет собой текстовый файл, содержащий в закодированном виде информацию об администраторе домена и открытый ключ. Обычно CSR генерируется в процессе заказа SSL-сертификата.

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

Шаг 4. Оплачиваем сертификат (если вы выбрали платный вариант).

Шаг 5. Подтверждаем владение доменом. Для этого вам понадобится email-ящик в зоне вашего домена. Туда будет отправлено письмо, в котором надо кликнуть по ссылке или скопировать код, который нужно ввести на странице центра сертификации.

Шаг 6. Дожидаемся выпуска сертификата и скачиваем его.

Шаг 7. Устанавливаете сертификат на сайт, используя файл(ы) сертификата и фаил-ключа, который у вас получился на третьем шаге. Если ваш сайт расположен на обычном хостинге, то лучше предварительно написать в сапорт и уточнить, как правильно установить сертификат. Если у вас свой сервер, то просто передайте все файлы администратору, он сам за 5 минут все установит.

Если SSL-сертификаты можно приобрести/получить через вашего хостера, то процесс обычно сильно упрощается. Обычно прямо в панели управления хостинга можно для выбранного домена заказать сертификат, который после получения будет автоматически установлен.

Нужно ли вносить в сайт какие-то изменения после перевода его на HTTPS?

Да, конечно.

Две основные задачи, которые вам нужно будет решить такие:

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

Задача 2. После установки сертификата, ваш сайт будет доступен и по http и по https. Вам же нужно будет настроить специальный редирект, чтобы все посетители попадали только на https-вариант страницы.

В заключение

Эта статья полностью опубликована на сайте Евгения Попова.

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

Я не стал писать свою статью, а просто почти целиком перенес статью Евгения.

Источник: evgeniypopov.com

Если материал вам понравился, нажмите или расскажите о нем друзьям!

Важно! Эта запись может содержать ссылки на плагины, которые к моменту вашего чтения и скачивания могут работать не корректно. Будьте внимательны.

Добавить комментарий

Ваш email нигде не будет показан. Обязательные поля помечены *