SSL-сертификаты — Инструменты — Дока

SSL-сертификаты — Инструменты — Дока Сертификаты

Ssl-сертификаты — инструменты — дока

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

SSL-сертификат — это набор информации в бумажном или электронном виде, состоящий из:

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

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

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

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

Сертификат открытого ключа может быть получен несколькими способами:

  • Через специальный авторизованный удостоверяющий центр (центр сертификации), которому пользователь сайта может доверять. Это самый распространённый вариант работы сайта в режиме коммерческого использования. Обычно сертификат выдаётся на какой-то срок, в течение которого удостоверяющий центр ручается за владельца сайта перед пользователем.
  • Генерация сертификата самим пользователем с помощью специализированных программ. Такие сертификаты часто используются для настройки или для работы внутренних сервисов компаний. В этом случае издатель сертификата совпадает с владельцем сайта.
  • Генерация фиктивного сертификата с помощью специализированных программ. Этот способ используется для настройки инфраструктуры проекта. Сертификат в этом варианте содержит фиктивную информацию, однако отлично подходит для тестирования.

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

Сторона A пересылает стороне T свой открытый ключ. Сторона T с помощью определённых механизмов устанавливает соответствие между открытым ключом стороны A и самой стороной A (физическое или юридическое лицо). После этого сторона T пересылает стороне A сертификат, который содержит:

  • Открытый ключ стороны A.
  • Информацию о стороне A, которая позволяет её идентифицировать.
  • Информацию о стороне T, которая позволяет её идентифицировать.
  • Электронную подпись стороны T (хэш-сумму), которая генерируется по содержимому сертификата и затем зашифровывается с использованием закрытого ключа стороны T.
  • Другие данные.

Когда сторона A пересылает стороне B свой сертификат, сторона B сравнивает сгенерированную хэш-сумму на основе содержимого сертификата и хэш-сумму, которая получается при расшифровке электронной подписи стороны T с помощью открытого ключа. Если хэш-суммы совпадают, то открытый ключ стороны A действительно принадлежит именно ей. После этого сторона B может шифровать данные с использованием открытого ключа стороны A и пересылать ей эти данные в зашифрованном виде. И только сторона A может расшифровать их.

Про сертификаты:  В области качества омтс и СМК как политика

Такая схема является самой простой при использовании протокола транспортного уровня TLS.

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

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

Можно выбирать любой понравившийся центр, но нужно принимать во внимание несколько факторов:

  • Юрисдикция, в рамках которой центр действует. Есть множество центров сертификации, которые действуют внутри одного региона или страны. Для сайтов этого, как правило, оказывается мало.
  • Цена за услуги (изготовление сертификатов, обслуживание, продление). Платить можно и за бренд, но чаще всего в этом нет никакого практического смысла.
  • Насколько долго работает центр на рынке подобных услуг.
  • Отзывы клиентов центра. Сюда же относится и репутация. Есть несколько международных организаций, которые могут поддержать доверие к центру включением в специальный список доверенных. Аккредитация может быть произведена и контролирующим органом внутри страны, в юридическом поле которой действует компания.

Для некоммерческих проектов можно получить бесплатный сертификат для сайта с помощью центра сертификации Let’s Encrypt.

Электронная форма сертификата определяется стандартом X.509. На уровне законодательства во многих странах есть свои законы или правила, которые повторяют, дополняют или уточняют детали этого стандарта. В области веб-приложений, в частности, используется стандарт RFC.5280. В нём описаны процедуры создания и отзыва сертификатов, которым должны следовать центры сертификации.

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

Например, авторитетная американская компания VeriSign предложила такую классификацию:

  • Class 1 — индивидуальные, для идентификации электронной почты.
  • Class 2 — для организаций.
  • Class 3 — для серверов и программного обеспечения.
  • Class 4 — для онлайн-бизнеса и транзакций между компаниями.
  • Class 5 — для частных компаний или правительственной безопасности.

В России больше прижилась схема всего из трёх классов:

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

Согласно этой классификации для физических лиц доступны:

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

Среди сертификатов начального уровня чаще всего пользуются следующими решениями от компаний GlobalSign, Comodo и других:

  • GlobalSign AlphaSSL (Wildcard).
  • GlobalSign DomainSSL (Wildcard).
  • Comodo SSL Wildcard (Wildcard).
  • Comodo SSL.
  • Easy Trust SSL от TrustWave.
  • QuickSSL premium от GeoTrust.
  • Thawte SSL123.

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

DomainSSL, AlphaSSL, OrganizationSSL и Comodo SSL — наиболее популярные сертификаты. При этом сертификаты имеют наименьший уровень доверия. Это дёшево и сердито. Практически никто из пользователей сайта никогда не задумается о том, какой сертификат используется.

Если важен уровень доверия, то можно использовать сертификаты бизнес-класса или сертификаты с расширенной проверкой. Этот вариант подходит очень крупным компаниям. У таких сертификатов есть множество дополнительных опций, нужных только крупному бизнесу. К сертификатам бизнес-класса относятся:

  • GlobalSign OrganizationSSL (Wildcard).
  • Comodo Premium SSL Wildcard (Wildcard).
  • Comodo InstantSSL Premium.
  • Comodo Premium SSL.
  • GeoTrust True BusinessID.
  • GeoTrust True BusinessID Wildcard (Wildcard).
  • TrustWave Premium SSL.
  • TrustWave Premium SSL Wildcard (Wildcard).
  • Symantec (VeriSign) SecureSite SSL.
  • Thawte SSL Webserver.
  • Thawte SSL Wildcard (Wildcard).

А к сертификатам с расширенной проверкой подлинности относятся:

  • GlobalSign ExtendedSSL.
  • Symantec (VeriSign) SecureSite EV SSL.
  • Symantec (VeriSign) SecureSite Pro EV SSL.
  • Comodo SSL EV.
  • Thawte SSL Webserver EV.
  • TrustWave Premium SSL EV.
  • GeoTrust True BusinessID EV.
Про сертификаты:  RATIONAL

Выше приведены лишь самые распространённые сертификаты, которые активно используются в мире. Есть сертификаты, которые можно оформить только на юридическое лицо, а бывают те, которые допускают использование и физическими лицами.

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

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

Создать ключ для генерации SSL-сертификата можно командой:

openssl genrsa -des3 -out example.com.key 2048openssl genrsa -des3 -out example.com.key 2048

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

openssl req -new -key example.com.key -out example.com.csropenssl req -new -key example.com.key -out example.com.csr

Файл example.com.csr, полученный после выполнения команды, и будет сертификатом, который надо будет установить на сервере в случае настройки безопасного доступа к сайту.

После генерации сертификата его содержимое можно прочитать в красивом виде с помощью команды:

openssl req -noout -text -in example.com.csropenssl req -noout -text -in example.com.csr

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

Как создать закрытый ключ openssl

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

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

Вы можете изменить my_key в приведенной ниже команде на свое собственное значение.

$ sudo openssl genrsa -out my_key.key

Вот что означают флаги команды:

  • genrsa Создать закрытый ключ RSA
  • -out Выходной файл

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

Как создать запрос на подпись сертификата

Следующим шагом является создание запроса на подпись сертификата (CSR).

CSR – это то, что вы обычно отправляете в УЦ.

Но в этом случае вы собираетесь подписать его самостоятельно.

При создании CSR вас попросят предоставить некоторую информацию.

Некоторые поля можно оставить пустыми, нажав клавишу ETCD_CLIENT_CERT_AUTH

Теперь запустите команду, показанную ниже, чтобы начать создание CSR.

$ sudo openssl req -new -key my_key.key -out my_csr.csr

Вот что обозначает каждый флаг команды

  • req Сделать запрос на подпись сертификата
  • -new Новый запрос
  • -key Путь, где хранится ваш файл закрытого ключа
  • -out Выходной файл

О сертификатах вообще и зачем их нужно подписывать.

Для начала разберемся, что такое SSL-сертификат.

Здесь и далее речь пойдет приемущественно о web-сайтах. Вопросы SSL FTP, Email, цифровых подписей исходного кода и пр. до поры оставим в стороне.

SSL-сертификат, это индивидуальная цифровая подпись вашего домена. Он может быть:

  1. Самоподписанным. Это значит, что вы сами выдали себе сертификат, и сами его подписали.
  2. Подписанный недоверенным центром сертификации. Это значит, что сертификат сайта проверен, но сам «проверяющий» доверия не удостоен.
  3. Подписанный доверенным ЦС. Это значит, что данные сертификата проверены компанией, которая имеет на это право, они как минимум существуют.

Разберем их более подробно.

Самоподписанный сертификат не гарантирует ничего. Любой человек может взять и выдать себе такой сертификат. Все браузеры выдают клиенту предпреждение о том, что сертификат не надежен.Подписанный не доверенным ЦС сертификат тоже не подтверждает ничего, т.к.

Сертификат, подписанный доверенным источником (как пример — Thawte или VerySign) подтверждает, что:

На доверенные сертификаты браузеры ошибку не выдают.

Но это технически. А теперь о том, что показывает доверенный сертификат посетителю вашего сайта.

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

Про сертификаты:  Купить сертификат на конфеты в Москве и России

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

Подпишем сертификат самостоятельно

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

$ openssl x509 -req -days 365 -in my_csr.csr -signkey my_key.key -out my_cert.crt

Предпосылки

Инструментарий openssl необходим для создания самозаверяющего сертификата.

Чтобы проверить, установлен ли пакет openssl в вашей системе Linux, откройте ваш терминал, введите openssl version и нажмите Enter. Если пакет установлен, система распечатает версию OpenSSL, в противном случае вы увидите нечто подобное openssl command not found .

Если пакет openssl не установлен в вашей системе, вы можете установить его, выполнив следующую команду:

Проверим сертификат

Вы можете проверить детали сертификата в текстовом формате с помощью команды:

openssl x509 -text -noout -in my_cert.crt

Создадим самоподписанный сертификат, используя существующий закрытый ключ и csr

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

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

Чтобы создать новый самоподписанный сертификат SSL, используйте openssl req команду:

Давайте разберем команду и разберемся, что означает каждая опция:

  • -newkey rsa:4096 – Создает новый запрос сертификата и 4096-битный ключ RSA. Значение по умолчанию составляет 2048 бит.
  • -x509 – Создает сертификат X.509.
  • -sha256 – Используйте 265-битный SHA (алгоритм безопасного хэширования).
  • -days 3650 – Количество дней для сертификации сертификата. 3650 – это 10 лет. Вы можете использовать любое положительное целое число.
  • -nodes – Создает ключ без ключевой фразы.
  • -out example.crt – Указывает имя файла, в который будет записан вновь созданный сертификат. Вы можете указать любое имя файла.
  • -keyout example.key – Задает имя файла, в который будет записан вновь созданный закрытый ключ. Вы можете указать любое имя файла.

Для получения дополнительной информации о параметрах openssl req команды посетите страницу документации OpenSSL req.

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

Generating a RSA private key
......................................................................    
........    
writing new private key to 'example.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

Введите запрашиваемую информацию и нажмите Enter.

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


Если вы хотите сгенерировать самозаверяющий SSL-сертификат без запроса какого-либо вопроса, используйте -subj параметр и укажите всю информацию о субъекте:

Generating a RSA private key
......................................................................    
........    
writing new private key to 'example.key'
-----

Поля, указанные в

-subj

строке, перечислены ниже:

  • C= – Название страны. Двухбуквенное сокращение ISO.
  • ST= – Название штата или провинции.
  • L= – Название населенного пункта. Название города, в котором вы находитесь.
  • O= – Полное название вашей организации.
  • OU= – Организационная единица.
  • CN= – Полное доменное имя.

Типы сертификатов.

Допустим, руководствуясь соображениями из 1 части статьи вы решили купить подписанный сертификат. Каково же будет ваше удивление, когда на сайте ЦС вы узнаеете, что они бывают разные 🙂

Типы сертификатов:

Esential SSL — самый не дорогой и быстро оформляемый сертификат. Доступен как для юридических, так и для физических лиц. Проверяется только право владения доменным именем, личные данные или регистрация компании не проверяются. Выдается на 1 домен.

Instant SSL — доступен и для физ. лиц, и для юр. лиц. Проверяется право владения доменом, регистрационные данные компании либо личность физ. лица. Выдается на 1 домен.

SGC SSL-сертификат. — Аналогично Instant SSL, но с поддержкой 40-битных расширений (актуально для старых ОС и браузеров). Выдается на 1 домен, либо wildcard (см. ниже).

Заключение

В этом руководстве мы описали, как создать самоподписанный сертификат SSL с помощью инструмента openssl.

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

Оцените статью
Мой сертификат
Добавить комментарий