Что такое SSL-сертификат и работа сайта по https-протоколу

Любой сайт имеет в адресе страниц приставку http//.
http – это сетевой протокол (технические правила), позволяющий браузеру загружать веб-страницы. Данные, передаваемые по протоколу http, не защищены, то есть они не шифруются.
https – это доработанный протокол, который обладает большей защитой данных.
Чтобы перевести сайт со стандартного http-протокола на защищенный https, вам нужен SSL-сертификат.

Что такое SSL-сертификат и работа сайта по https-протоколу

Как работает https-протокол

Как было сказано выше, https (http Secure) – это расширение протокола http, при котором используется зашифрованное соединение.

Работает это так:

1. Пользователь вводит имя сайта в браузере.
2. Браузер “спрашивает” у сервера, установлен ли на этом сайте SSL-сертификат.
3. Сервер в ответ на запрос браузера пользователя отправляет копию SSL-сертификата и публичный ключ.
4. Браузер проверяет подлинность сертификата, запрашивая информацию о нем у центра сертификации, который его выдал.
5. Если информация подтверждается, то браузер генерирует сеансовый ключ, зашифровывает его полученным публичным ключом и посылает на сервер.
6. Сервер расшифровывает это сообщение и сохраняет сеансовый ключ.
7. После этого между сервером и браузером устанавливается безопасное (зашифрованное) соединение по протоколу https.

Зачем нужен https-протокол

Сайт может функционировать с базовым протоколом http. Посетителям будут доступны все страницы, изображения, видео и т.д., но владельцам стоит учитывать требования поисковых систем и заботиться о безопасности пользователей:

  • сайты с https будут иметь лучшие показатели в поисковой выдаче;
  • пользователям небезопасно вводить свои личные данные (например, пароли, номера банковских карт) на сайтах с http, где их легче похитить злоумышленникам.

Сайты, работающие по защищенному протоколу https, сложнее взломать, и они безопаснее для пользователей.

Как устроен SSL-сертификат

SSL (англ. Secure Sockets Layer переводится как “слой защищенных подключений”) – это криптографический протокол, который создан для безопасного обмена и хранения информации на сайтах.

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

Цифровой сертификат содержит следующую информацию:

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

Эта информация позволяет браузеру клиента:
1. Проверить достоверность сертификата.
2. Установить, что он был выпущен доверенной организацией специально для конкретного домена.
3. Сделать вывод, что устанавливаемое с сервером соединение – безопасное.

Дополнительные возможности

1. SSL-сертификат может быть выпущен для одного или нескольких “зеркал” доменных имен, например, mail.ru и www.mail.ru.
2. Существуют сертификаты, которые, кроме основного домена, защищают все его поддомены – wildcard сертификаты (poddomen1.site.com, poddomen2.site.com).
3. Особая категория SSL-сертификатов – это мультидоменные сертификаты, защищающие сразу несколько доменов.

Что такое SSL-сертификат и работа сайта по https-протоколу

Как посмотреть информацию о сертификате

Если сайт использует SSL-сертификат, то знак “замок” в адресной строке браузера будет закрыт. Если сертификата нет, то открыт.

Что такое SSL-сертификат и работа сайта по https-протоколу

Браузер предоставляет пользователю полную информацию о применяемом на сайте SSL-сертификате.

1. Чтобы просмотреть ее в браузере Google Chrome, нажмите на значок в начале адресной строки браузера.

Что такое SSL-сертификат и работа сайта по https-протоколу

3. Открывшееся окно покажет всю информацию о сертификате:

  • для какого домена создан;
  • название выпустившей сертификат организации;
  • срок действия сертификата.

Что такое SSL-сертификат и работа сайта по https-протоколу

4. Специалисты могут просмотреть дополнительную техническую информацию о сертификате и участвовавших в его выпуске организациях в закладках “Details” и “Certification Path”.

Взаимодействие с браузером

В браузеры встроены сертификаты всех официальных удостоверяющих центров:

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

Что такое SSL-сертификат и работа сайта по https-протоколу

Виды SSL-сертификатов

Различают три вида SSL-сертификатов.

  • платные официальные сертификаты, выданные одним из доверенных центров;
  • бесплатные сертификаты от Let’s Encrypt;
  • самоподписанные (самозаверенные, self-signed certificate).

Как получить официальный сертификат для сайта

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

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

Есть несколько способов подтверждения владения доменом:

  • Проверка через электронную почту. Центр сертификации высылает вам проверочный e-mail, в котором будет ссылка для подтверждения домена. Отправить такое письмо могут либо на почту, указанную в информации по домену, либо на один из адресов, относящихся к конкретному домену: admin@, administrator@, hostmaster@, postmaster@, webmaster@
  • Проверка при помощи DNS-записи. При этом способе вам необходимо создать особую запись в DNS-зоне домена, и затем программное обеспечение центра сертификации проверит ее наличие.
  • Проверка через протокол HTTP. Со стороны организации, выпускающей сертификат, вам будет предоставлен специальный файл с определенным названием и содержимым. Его необходимо загрузить на свой сайт, после чего центр сертификации проверит его доступность по протоколу HTTP и подтвердит возможность выдачи сертификата.

Официальные SSL-сертификаты – платные. Такие сертификаты выпускаются на срок 1-4 года. Стоимость, в зависимости от срока действия, начинается от 3-5 USD.

Пример получения официального сертификата у провайдера Reg.ru

1. При заказе официального SSL-сертификата у провайдера Reg.ru введите свои контактные данные для его выпуска.

Что такое SSL-сертификат и работа сайта по https-протоколу

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

Что такое SSL-сертификат и работа сайта по https-протоколу

3. На контактный e-mail вам будет прислано письмо с инструкцией по активации сертификата (это делается через добавление специальной записи в DNS).

Что такое SSL-сертификат и работа сайта по https-протоколу

Согласно инструкции от Reg.ru, при заказе SSL-сертификатов время их активации может составить до 12-ти часов.

Как получить бесплатный сертификат от Let’s Encrypt

Для популяризации протокола HTTPS компания Google создала специальную систему выпуска бесплатных официальных сертификатов – Let’s Encrypt.

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

Существуют три способа получения бесплатного сертификата от Let’s Encrypt:
1. В админ-панели провайдера.
2. В панели управления хостингом.
3. Сгенерировать сертификат на сервере (для VPS и выделенных серверов).

Получение сертификата у провайдера

Получить бесплатный SSL-сертификат у провайдера можно в один клик.

Например, у провайдера Beget достаточно просто нажать кнопку “Установить”.

Что такое SSL-сертификат и работа сайта по https-протоколу

Получение сертификата в панели управления

В большинство популярных панелей управления хостингом встроена поддержка сертификатов от Let’s Encrypt.

Например, в ISPmanager вы можете быстро создать сертификат, просто указав в соответствующей форме название домена.

Входящее в состав панели программное обеспечение автоматически выполнит процедуру валидации домена (Через DNS или через HTTP), а также будет делать автоматическое обновление сертификата каждые три месяца.

Что такое SSL-сертификат и работа сайта по https-протоколу

Генерация сертификата Let’s Encrypt на сервере

Пользователи услуги VPS и выделенных серверов могут применить специальное программное обеспечение от Let’s Encrypt и создать бесплатный сертификат для сайтов на свой сервер. Также существует механизм автоматического обновления этих сертификатов.

Для автоматизированного получения SSL-сертификата был разработан скрипт certbot (или certbot-auto для некоторых версий).

Скрипт работает с web-серверами:

Он считывает список работающих на сервере сайтов и предлагает установить для них сертификаты. Например, так выглядит работа скрипта с web-сервером Apache:

1.  Запустите команду “certbot –apache”.

Что такое SSL-сертификат и работа сайта по https-протоколу

2. Сertbot находит все настроенные на сервере web-сайты, формирует из них список и предлагает вам указать нужные домены из этого списка для установки сертификатов.

Что такое SSL-сертификат и работа сайта по https-протоколу

5. После окончания своей работы скрипт certbot выведет на экран информацию о том, для каких доменов были выпущены SSL-сертификаты и в каких папках на сервере находятся файлы с ключами от сертификатов.

Что такое SSL-сертификат и работа сайта по https-протоколу

Создание самоподписанного сертификата на сервере

Самоподписанные сертификаты генерируются владельцем сервера и домена самостоятельно. Подходит только для владельцев  виртуальных и выделенных серверов под управлением Linux.

Самоподписанные сертификаты:

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

Но такие сертификаты могут:

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

Для создания самоподписанного сертификата используется набор инструментов из библиотеки OpenSSL.

Для генерации SSL-сертификата из командной строки используйте команду:

# openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout /home/ssl/my_key.key -out /home/ssl/my_cert.crt

Будут запрошены:

  • пароль для файла с сертификатом;
  • данные о владельце сертификата (страна, город, название организации).

Самый главный параметр, который попросит ввести программа OpenSSL – это Common Name – адрес домена, для которого используется сертификат.

Что такое SSL-сертификат и работа сайта по https-протоколу

После выполнения данной команды на сервере в каталоге /home/ssl будут сгенерированы файлы сертификата: публичный ключ – в файле my_cert.crt и приватный ключ – в файле my_key.key.

Выводы

1. SSL-сертификаты обеспечивают соединение пользователя с сервером сайта по протоколу https, который более безопасен, чем привычный http.
2. Наличие SSL-сертификата гарантирует лучшее ранжирование сайта поисковыми системами.
3. Сертификаты бывают платными (выданными официальными центрами сертификации), бесплатными (от Let’s Encrypt) и самоподписанными.
4. Для сайтов, связанных с электронной торговлей, лучше использовать официальные сертификаты. Для небольших проектов начинающих вебмастеров подойдут бесплатные сертификаты от Let’s Encrypt. Для сайтов, которые используются во внутренней сети предприятия, можно применять самоподписанные сертификаты.

Что такое SSL-сертификат и работа сайта по https-протоколу