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

Kate

Administrator
Команда форума
Любой сайт имеет в адресе приставку http//.

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

https - это доработанный протокол, который обладает большей защитой данных.

Чтобы перевести сайт со стандартного http-протокола на защищенный https, вам нужен SSL-сертификат.

fdd373dc534ccccd3571a6f190783ea3.jpg


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

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

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

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

c9f466c961454f01632ceaeaba50c075.jpg


Зачем нужен 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-сертификатов - это мультидоменные сертификаты, защищающие сразу несколько доменов.

67813bad330c70b03c404f629a9aef90.jpg


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

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

9b5851732349f24bb3b5c0708240fe44.jpg


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

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

1e1afedb3693540455bdfb69ee81ff84.jpg


2. Выберите в меню пункт “Сертификат”.

848691dcc44bfce7c2804d6dbefda57c.jpg


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

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


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

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

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

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

b0bdd58ae740a597d9858cb1da749b1f.jpg


Виды 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 введите свои контактные данные для его выпуска.

7eb2961ea3acb425163b424112822c03.png


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

55941e314088700ec547636aea63fdd4.png


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

413cf39df1e847816d4048701744f63a.jpg


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

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

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

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

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

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

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

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

3a7d103e271e74342528986b3bc3b736.png


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

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

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

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

b97745ffc7d3db8b16725f500086389d.jpg


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

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

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

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

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

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

c2f8777e599605165e9ca4804aec82a7.jpg


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

6f0a253f02d73b023714e89b4756ee2a.jpg


3. Затем скрипт запрашивает у сервера Let's Encrypt сертификаты для выбранных вами доменов и прописывает для них настройки в конфигурационные файлы Apache.

d5827c605d8d9438e542616dc92b6ca8.jpg


4. После этого certbot предлагает вам выбрать: должны ли указанные сайты работать только по протоколу HTTPS или также открываться и по HTTP.

3d722e88f70657fa9b4946b84587bcbe.jpg


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

df1d9c0cda5359d59c2632833d7f9236.jpg


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

Самоподписанные сертификаты генерируются владельцем сервера и домена самостоятельно. Подходит только для владельцев виртуальных и выделенных серверов под управлением 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 - адрес домена, для которого используется сертификат.

0cbce6c2b56bf25518323cbf88c730bb.png


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

Выводы​

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

Источник статьи: https://ru.hostings.info/
 
Сверху