SSL сертификат. Зачем он нужен?!

16 марта 2020 | Алексей Забелин

SSL сертификат

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Зеленый замок, говорит о том, что между нашим браузером и сервером сайта установлено 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: «Самоподписанный (самозаверенный) сертификат вы можете и выпустить, и подписать самостоятельно. Но он обладает низкой степенью доверия и надежности, как и паспорт, который вы нарисуете и выдадите сами себе.»

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

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

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

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

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

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

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

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

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

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

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

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

Cертификат с проверкой домена подтверждает лишь тот факт, что доменное имя действительно принадлежит вам.

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

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

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

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

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

В данном случае сертификационный центр проводит более существенную проверку.

Она включает проверку регистрационных документов компании или индивидуального предпринимателя

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

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

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

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

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

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

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

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

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