Как установить SSL-сертификат 🐞 Trofimov Digital

Как установить SSL-сертификат 🐞 Trofimov Digital Сертификаты
Содержание
  1. Генерация csr (запроса на получение сертификата) – что такое csr
  2. Что нужно сделать чтобы установить ssl-сертификат
  3. Tlsv1.3
  4. Версии openssl
  5. Выпуск ssl-сертификата
  6. Генератор конфигурационных файлов ssl
  7. Генерация csr запроса через openssl
  8. Генерирование ssl-сертификата
  9. Генерирование запроса для существующего закрытого ключа
  10. Генерирование запроса для существующего сертификата и ключа
  11. Двусторонний tls
  12. Дешифровка закрытого ключа
  13. Другие полезные команды для работы с сертификатами в openssl
  14. Как сгенерировать csr-запрос
  15. Как установить ssl-сертификат в панели управления ispmanager
  16. Как установить ssl-сертификат на 1c-bitrix
  17. Как установить ssl-сертификат на сервер с apache
  18. Как установить ssl-сертификат на хостинг
  19. Конвертация der в pem
  20. Конвертация pem в der
  21. Конвертация pem в pkcs12
  22. Конвертация pem в pkcs7
  23. Конвертация pkcs12 в pem
  24. Конвертация to pkcs7 в pem
  25. Номенклатура сертификатов
  26. Образец csr
  27. Откуда берутся сертификаты?
  28. Полезные ссылки
  29. Приобретение ssl-сертификата
  30. Проверка закрытого ключа
  31. Проверка подписи сертификата
  32. Просмотр csr
  33. Просмотр сертификата
  34. Просмотр сертификатов
  35. Процесс установки ssl сертификата
  36. Словарный запас
  37. Советы:
  38. Совпадение ключа с сертификатом и запросом
  39. Создание закрытого ключа
  40. Создание сертификата для существующего закрытого ключа
  41. Сценарий №1 — найти следующего в связке
  42. Типы ssl-сертификатов
  43. Установка ssl-сертификата
  44. Форматы сертификатов
  45. Шифрование закрытого ключа
  46. Итоги

Генерация csr (запроса на получение сертификата) – что такое csr

CSR (Certificate Signing Request) — запрос на получение сертификата. Представляет собой текстовый файл, содержащий в закодированном виде информацию об администраторе домена и открытый ключ.

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

При генерации CSR вам необходимо заполнить латинскими символами следующие поля:

Рекомендации по заполнению полей при генерации CSR:

Данные, указанные в CSR, должны соответствовать данным, указанным в Whois-сервисе по домену.

Что нужно сделать чтобы установить ssl-сертификат

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

  1. приобрести SSL-сертификат;
  2. сгенерировать CSR запрос на сертификат;
  3. выпустить SSL-сертификат;
  4. установить SSL-сертификат на хостинг или сервер;
  5. внести изменения в настройки сайта.

Tlsv1.3

Стоит отметить, что все выше написанное относится к TLSv1.2, которая начинает понемногу устаревать. В 2021 году была разработана новая версия 1.3 в которой: были запрещены уже ненадежные алгоритмы, ускорен процесс соединения, переработан протокол рукопожатия и др.

Версии openssl

Чтобы проверить версию OpenSSL, используйте команду openssl version.

Следующая команда выведет версию OpenSSL и все параметры, с которыми она была скомпилирована.

openssl version -a

В данном руководстве используется бинарный файл OpenSSL со следующими подробностями:

OpenSSL 1.0.1f 6 Jan 2021built on: Mon Apr  7 21:22:23 UTC 2021platform: debian-amd64options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx)compiler: cc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector –param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,–noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASMOPENSSLDIR: “/usr/lib/ssl”

Теперь вы знакомы с основными методами и командами OpenSSL.

Tags:

Выпуск ssl-сертификата

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

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

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

Генератор конфигурационных файлов ssl

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

Генерация csr запроса через openssl

Генерация CSR-запроса должна проходить в строгом соответствии со следующими правилами. Во-первых, вся информация должна быть приведена на английском языке. Во-вторых, следует избегать использования следующих символов: < > ~ ! @ # $ % ^ * / ( ) ?.,&.

Поля для заполнения будут следующими:

  • Country Name – ISO-кодстраны
  • State or Province Name – область, где была проведена официальная регистрация компании
  • Locality Name – город, где была проведена официальная регистрация компании
  • Organization Name – полное название организации (без сокращений)
  • Organizational Unit Name – название отдела организации
  • Common Name – полное доменное имя сервера

Сгенерировать CSR-запрос в OpenSSL можно при помощи специальной команды:

openssl req -key -new cert.key -out cert.csr

Имя домена, на который совершается запрос, указывается в Common Name. Поля «A challenge password» и «An optional company name» заполнять не нужно (просто жмем enter).

Команда для создания ключа:

openssl req -batch -new -noout -newkey rsa:2048 -nodes -keyout cert.key

В случае потери пароля или файла ключа надо будет заказывать повторное создание сертификата.

Одновременное создание ключа и запроса с данными:

Генерирование ssl-сертификата

Если вы хотите защитить свой сервис, но не хотите подписывать его в ЦС, вы можете создать и подписать сертификат самостоятельно.

Такие сертификаты называются самоподписанными.

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

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

Генерирование запроса для существующего закрытого ключа

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

Следующая команда создаст запрос сертификата (domain.csr) для существующего ключа (domain.key):

openssl req -key domain.key -new -out domain.csr

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

Генерирование запроса для существующего сертификата и ключа

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

Следующая команда создаст сертификат (domain.crt) на основе существующего запроса (domain.csr) и закрытого ключа (domain.key):

openssl x509 -signkey domain.key -in domain.csr -req -days 365 -out domain.crt

Опция -days 365 задаёт срок действия сертификата в днях.

Двусторонний tls

Двусторонний TLS или Two Way TLS или mutual TLS (mTLS) означает проверку сертификата клиента. Сервер после своего сообщения Certificate посылает запрос сертификата клиента CertificateRequest. Клиент в ответ отправляет Certificate, сервер производит проверку, аналогичную проверке сертификата сервера клиентом. Далее настройка TLS происходит в описанном выше порядке.

Дешифровка закрытого ключа

Эта команда может расшифровать зашифрованный ключ:

openssl rsa -in encrypted.key -out decrypted.keyEnter the pass phrase for the encrypted

Введите пароль, чтобы расшифровать ключ.

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

Уточнить длину запроса:

Как сгенерировать csr-запрос

Заполните поля на английском. Если что-то непонятно, задайте вопрос в нашем чате. Что указывать в полях генератора:

Название или имя:
Доменное имя (Common Name)
— домен или поддомен, на который будет установлен сертификат.Организация (Organization)
— название компании или ФИО человека, на которого оформляется сертификат.Отдел (Organization Unit)
— отдел, который покупает сертификат. Если вы не организация или у вас нет отдела, укажите IT
.

Про сертификаты:  Что такое управление проектами

Адрес компании или человека, на которого оформляется сертификат:
Город (Locality)
— город. Пример: Kharkiv
.Область/Штат (State)
— область. Пример: Kharkivska Oblast
.Страна (Country)
— страна в виде кода из двух символов. UA для Украины, RU для России.Email
— электронная почта административного контакта.

Об особенностях генерации CSR для разных типов SSL-сертификатов читайте в

Порядок подготовки CSR-запроса для получения SSL-сертификата. Внимание! Храните сформированные конфиденциальные данные с недоступном для посторонних лиц месте! Не забудьте сохранить копию приватного ключа *.key – в случае утери данного файла, Вам необходимо будет заказать новый сертификат.
Данное руководство предназначено для работы с Apache Mod SSL OpenSSL, но может использоваться и в другом окружении.

Для Клиентов хостинга КОМТЕТ эти действия могут быть выполнены нашими сотрудниками по запросу. Вы так же можете воспользоваться .

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

Пошаговая инструкция:

Шаг 1. OpenSSL

Установите OpenSSL
, если данная программа отсутствует на Вашем сервере.

Шаг 2. Создание RSA-ключа для веб-сервера Apache

Перейдите в директорию для создания ключей:

cd /apacheserverroot/conf/ssl.key (ssl.key – директория по умолчанию для ключей).

Если вы используете другой путь, то перейдите в директорию веб-сервера Apache для закрытых ключей.

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

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

openssl genrsa -des3 -out domainname.key 2048

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

openssl genrsa -out domainname.key 2048

Минимальный размер ключа для CSR-запроса равен 2048 бит.

Шаг 3. Получение CSR-файла

Введите следующую команду для создания CSR с приватным ключом RSA (на выходе будет получен PEM-формат):

openssl req -new -key domainname.key -out domainname.csr

Примечание: Если на Шаге 2 вы использовали ключ “-des3”, то будет запрошен пароль для PEM-формата.

При создании CSR необходимо придерживаться следующих правил.
Введите информацию, которая будет отображаться в сертификате. Нельзя
использовать следующие символы:
< > ~ ! @ # $ % ^ * / () ? . , &

Не вводите дополнительные атрибуты и оставьте пароль пустым (нажмите Enter).

Для частных, физических лиц, в полях Организация и наименование подразделения указывайте в латинской транскрипции ФИО, например Ivanov I Ivan.

Примечание: для проверки содержимого CSR используйте следующую команду:
openssl req -noout -text -in domainname.csr

Шаг 4
.

Отправьте нам CSR-файл, как описано в Порядке получения SSL-сертификата .

Приватный ключ должен начинаться
—–BEGIN RSA PRIVATE KEY—– и заканчиваться —–END RSA PRIVATE KEY—–.
Для просмотра содержимого приватного ключа используйте следующую команду:
openssl rsa -noout -text -in domainname.key

Для других веб-серверов инструкцию по получению CSR можно найти .

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

При заказе сертификата вам будет предложено сгенерировать CSR автоматически. Форма автоматической генерации CSR доступна по .

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

Инструкция актуальна для linux-подобных операционных систем (CentOS, Debian, Ubuntu…). Все действия необходимо производить в командной строке (в терминале).Если у вас заказан сервер VPS или хостинг сайтов, вы можете сгенерировать CSR прямо на нём, подключившись по SSH:

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

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

Процесс генерации CSR отличается в зависимости от типа, версий и состава программного обеспечения, установленного на сервере.

Мы приводим инструкцию по генерации CSR для наиболее распространённого веб-сервера Apache
. Если эта инструкция не подходит и используется другое серверное ПО, для генерации CSR обратитесь к администратору веб-сервера или в службу поддержки компании, предоставляющей хостинг для вашего сайта.

Для генерации секретного ключа (key) и запроса на сертификат (CSR) используется утилита OpenSSL. Эта утилита, как правило, входит в стандартную поставку веб-сервера Apache.

Как установить ssl-сертификат в панели управления ispmanager

Войдите в панель управления ISPmanager.

Перейдите в раздел «SSL-сертификаты» и нажмите «Создать».

Укажите тип сертификата «Существующий» и нажмите «Далее».

На открывшейся странице заполните поля:

  • Имя SSL-сертификата – любое имя латиницей, под ним сертификат будет отображаться в панели управления;
  • SSL-сертификат – содержимое файла SSL-сертификата;
  • Ключ SSL-сертификата – приватный ключ сертификата;
  • Цепочка SSL-сертификатов – последовательно укажите сначала корневой сертификат, а затем с новой строки без пробела – промежуточный.

Затем нажмите Завершить.

В разделе «SSL-сертификаты» появится добавленный сертификат.

Как установить ssl-сертификат на 1c-bitrix

Воспользуйтесь официальными инструкциями от 1С-Битрикс:

Как установить ssl-сертификат на сервер с apache

Понадобится файл SSL-сертификата, назовите его domain.crt и приватный ключ, который был получен на этапе генерации CSR запроса на сертификат, переименуйте его в domain.key.

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

Все 3 файла загрузите на сервер в директорию /etc/ssl/

Откройте конфигурационный файл Apache сайта, для которого устанавливается сертификат. Если сайт один, конфигурационный файл скорее всего будет одним из указанных ниже:

Как установить ssl-сертификат на хостинг

Найдите раздел SSL панели управления хостингом.

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

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

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

Подробные инструкции можно найти у своего хостинг провайдера.

Конвертация der в pem

Для этого введите:

openssl x509 -inform der -in domain.der -out domain.crt

Конвертация pem в der

Чтобы конвертировать PEM в DER, используйте такую команду:

openssl x509 -in domain.crt -outform der -out domain.der

Формат DER обычно использует Java.

Конвертация pem в pkcs12

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

openssl pkcs12 -inkey domain.key -in domain.crt -export -out domain.pfx

Программа запросит пароль. Файл PKCS12 позволяет объединить несколько сертификатов в один PEM-файл (domain.crt).

Файлы PKCS12 (или PFX) обычно используются для перемещения наборов сертификатов в Micrsoft IIS (Windows).

Про сертификаты:  Как организовать корпоративное ДМС, чтобы повысить лояльность сотрудников | ДелоБанк

Конвертация pem в pkcs7

Чтобы добавить сертификаты PEM (domain.crt и ca-chain.crt) в файл PKCS7 (domain.p7b), введите:

openssl crl2pkcs7 -nocrl -certfile domain.crt -certfile ca-chain.crt -out domain.p7b

Файлы PKCS7 (также известные как P7B) часто используются в Java Keystores и Microsoft IIS (Windows).

Конвертация pkcs12 в pem

Чтобы конвертировать файл PKCS12 в формат PEM, введите:

Конвертация to pkcs7 в pem

Чтобы конвертировать PKCS7 в PEM, введите:

openssl pkcs7 -in domain.p7b -print_certs -out domain.crt

Обратите внимание: файл PKCS7 содержит много компонентов, а именно сертификат и промежуточный сертификат ЦС.

Номенклатура сертификатов

Давайте рассмотрим, какие сертификаты X.509 встречаются в природе, если рассматривать их по расположению в

пищевой

цепочке доверия.

По степени

крутизны

дороговизны и надежности сертификаты делятся на 3 вида:

DVOVEV

Образец csr

Процесс генерации CSR отличается в зависимости от типа, версий и состава программного обеспечения, установленного на сервере.

Ниже приведена инструкция по генерации CSR для наиболее распространённого веб-сервера Apache.
Если Вы используете другое серверное ПО, для генерации CSR обратитесь к разработчику.

Для генерации секретного ключа (key) и запроса на сертификат (CSR) используется утилита OpenSSL.
Эта утилита, как правило, входит в стандартную поставку веб-сервера Apache.

Откуда берутся сертификаты?

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

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

    not trusted

  2. Приобрести сертификат в УЦ. Это будет стоить денег в зависимости от различных его характеристик и возможностей, указанных выше.
  3. Получить бесплатный сертификат LetsEncrypt, доступны только самые простые DV сертификаты.

Для первого сценария достаточно пары команд и чтобы 2 раза не вставать создадим сертификат с алгоритмом эллиптических кривых. Первым шагом нужно создать закрытый ключ. Считается, что шифрование с алгоритмом эллиптических кривых дает больший выхлоп, если измерять в тактах CPU, либо байтах длины ключа. Поддержка ECC не определена однозначно в TLS < 1.2.

openssl ecparam -name secp521r1 -genkey -param_enc explicit -out private-key.pem

Далее, создает CSR — запрос на подписание сертификата.

openssl req -new -sha256 -key private.key -out server.csr -days 730

И подписываем.

openssl x509 -req -sha256 -days 365 -in server.csr -signkey private.key -out public.crt

Результат можно посмотреть командой:

openssl x509 -text -noout -in public.crt

Openssl имеет огромное количество опций и команд. Man страница не очень полезна, справочник удобнее использовать так:

openssl -help
openssl x509 -help
openssl s_client -help

Ровно то же самое можно сделать с помощью java утилиты keytool.

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048

Следует серия вопросов, чтобы было чем запомнить поля owner и issuer

What is your first and last name?
What is the name of your organizational unit?
What is the name of your organization?
What is the name of your City or Locality?
What is the name of your State or Province?
What is the two-letter country code for this unit?
Is CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU correct?

Конвертируем связку ключей из проприетарного формата в PKCS12.

keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.jks -deststoretype pkcs12

Смотрим на результат:

keytool -list -v -alias selfsigned -storepass password -keystore keystore.jks
Alias name: selfsigned
Creation date: 20.01.2021
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU
Issuer: CN=Johnnie Walker, OU=Unknown, O=Unknown, L=Moscow, ST=Moscow, C=RU
Serial number: 1f170cb9
Valid from: Sat Jan 20 18:33:42 MSK 2021 until: Tue Jan 15 18:33:42 MSK 2021
Certificate fingerprints:
     MD5:  B3:E9:92:87:13:71:2D:36:60:AD:B5:1F:24:16:51:05
     SHA1: 26:08:39:19:31:53:C5:43:1E:ED:2E:78:36:43:54:9B:EA:D4:EF:9A
     SHA256: FD:42:C9:6D:F6:2A:F1:A3:BC:24:EA:34:DC:12:02:69:86:39:F1:FC:1B:64:07:FD:E1:02:57:64:D1:55:02:3D

Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 30 95 58 E3 9E 76 1D FB   92 44 9D 95 47 94 E4 97  0.X..v...D..G...
0010: C8 1E F1 92                                        ....
]
]

Значению ObjectId: 2.5.29.14 соответствует определение ASN.1, согласно RFC 3280 оно всегда non-critical. Точно так же можно узнать смысл и возможные значения других ObjectId, которые присутствуют в сертификате X.509.

subjectKeyIdentifier EXTENSION ::= {
    SYNTAX SubjectKeyIdentifier
    IDENTIFIED BY id-ce-subjectKeyIdentifier
}

SubjectKeyIdentifier ::= KeyIdentifier

Полезные ссылки

На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.

Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.

Приобретение ssl-сертификата

Итак, вы знаете, что такое SSL и определились в выборе сертификата, далее его нужно приобрести.

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

Рекомендую хостинги:

  • (промокод на скидку для заказа домена или хостинга: 2229-CC0A-AC4D-C31B)
  • (месяц бесплатно)

На этапе покупки укажите тип сертификата и домен для которого он приобретается. Затем оплатите сертификат.

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

Проверка закрытого ключа

Эта команда подтвердит валидность закрытого ключа:

openssl rsa -check -in domain.key

Если ключ зашифрован, программа запросит парольную фразу. Предоставьте пароль от ключа, чтобы просмотреть его в незашифрованном формате.

Проверка подписи сертификата

Чтобы убедиться, что сертификат был подписан в ЦС, введите:

openssl verify -verbose -CAFile ca.crt domain.crt

Просмотр csr

Эта команда позволяет просмотреть содержимое файла запроса на подпись сертификата в виде простого текста:

openssl req -text -noout -verify -in domain.csr

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

Следующая команда позволяет просмотреть содержимое сертификата в виде простого текста:

openssl x509 -text -noout -in domain.crt

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

Файлы сертификатов и запросов на подпись закодированы в формате PEM, который не может быть прочитан человеком.

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

Процесс установки ssl сертификата

Процесс установки сертификата осуществляется при помощи следующих шагов.

Скопируйте выданный вам сертификат в файл, расположенный на вашем сервере Apache

После выпуска SSL-сертификата, на почтовый адрес, который вы задали, поступит электронное письмо, которое будет содержать в себе ваш сертификат. Файл с сертификатом будет называться domain.crt. Открыв файл с SSL сертификатом в обычном текстовом редакторе, вы увидите следующее (примерно):

 —–BEGIN CERTIFICATE—–ASb-SdGSIk3DqvPAqCAMIACAQSxALBgkqddhgrtkiG9w0BBwGg&KLPmowggHXAhUb7egest5u0M63v1Z2A/kFghj5CSqGSIb3DQBAs klMF8xCzAnbijNByhTMd54vSA(…….)E cFEGjgrHJgrA eRP6XraWw8iiguUtfgrrcJgg4P6XVS4l39 l5aCEGGbauLP5W6K99orhIhgQrlX2 KeDi xBG2coigehIGFeQS/16S36ITcluHGY5EA &A5ujbhgrYHS—–END CERTIFICATE—–

Скопируйте данный сертификат туда же (в ту же директорию), где лежит ваш частный (приватный) ключ, назовем этот каталог /etc/ssl/crt/. В нашей ситуации приватный ключ – это private.key. Публичным ключом будет выступать domain.crt.

Задайте корневой и промежуточный сертификат

Очень важный пункт. Чтобы заслужить доверие браузеров и различных мобильных устройств к вашему SSL-сертификату, вам нужно будет задать сертификаты корневых и промежуточных ЦС (центров сертификации). Такие сертификаты обычно лежат вместе с файлом Вашего главного сертификата. Для Apache их надо объединить в ca_bundle.

Про сертификаты:  Антисептики для рук от производителя оптом - купить в Москве: дезинфицирующие средства для рук и поверхностей, антисептические гели, от 30 мл до 5 л

Чтобы ссылка на данный файл была корректной, следует произвести следующее в необходимом разделе Virtual Host для вашего веб-сайта:

Словарный запас

Определение X.509 сертификатов есть в архиве ITU-T

Certificate  ::=  SEQUENCE  {
     tbsCertificate       TBSCertificate,
     signatureAlgorithm   AlgorithmIdentifier,
     signatureValue       BIT STRING  }

TBSCertificate  ::=  SEQUENCE  {
     version         [0]  EXPLICIT Version DEFAULT v1,
     serialNumber         CertificateSerialNumber,
     signature            AlgorithmIdentifier,
     issuer               Name,
     validity             Validity,
     subject              Name,
     subjectPublicKeyInfo SubjectPublicKeyInfo,
     issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                          -- If present, version MUST be v2 or v3

Для того, чтобы досконально понять обозначения и синтаксис, придется читать спеки X.680 редакции 2008 г., где есть полное описание ASN.1. В понятиях ASN.1SEQUENCE обозначает примерно то же самое, что и struct в Си. Это может сбить с толку, ведь по семантике оно должно было соответствовать скорее массиву. И тем не менее.

Стандарт X.690 определяет следующие правила кодирования структур данных, созданных в соответствии с ASN.1: BER (Basic Encoding Rules), CER (Canonical Encoding Rules), DER (Distinguished Encoding Rules). Есть даже XER (XML Encoding Rules), который на практике мне никогда не встречался.

Да, но для чего нужны сертификаты X.509, которые доставляют столько головной боли? Первая и основная функция сертификатов X.509 — служить хранилищем открытого или публичного ключа PKI (public key infrastructure). К этой функции нареканий нет, а вот со второй не все так однозначно.

Вторая функция сертификатов X.509 заключается в том, чтобы предъявитель сего был принят человеком, либо программой в качестве истинного владельца некоего цифрового актива: доменного имени, веб сайта и пр. Это получается по-разному, далеко не все сертификаты имеют высокую ликвидность, если пользоваться финансовой терминологией.

Советы:

Не следует сокращать название местности или штата. Вводите их полностью (например, St. Louis должно быть введено как Saint Louis).

Если вы отправляете этот запрос (CSR) в центр сертификации (CA), будьте очень внимательны, заполняя все эти поля, но особенно важны Organization Name (Название организации) и Common Name (Имя сервера). Центр сертификации проверяет информацию, представленную в запросе (CSR), чтобы убедиться в том, что сервер с именем Common Name, закреплён именно за вашей организацией. Центр сертификации не принимает запросы CSR, в которых содержится неверная информация.

Убедитесь в том, что в качестве значения Common Name введено реальное имя вашего безопасного сервера (правильное имя DNS), а не какой-либо из его псевдонимов.

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

Избегайте использования специальных символов, например @, #, &, ! и т.д. Некоторые центры сертификации не примут запрос сертификата, содержащий специальные символы. Поэтому, если название компании включает амперсанд (&), запишите его в виде «and» вместо «&».

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

Эта команда позволяет узнать, относится ли закрытый ключ (domain.key) к тому или иному сертификату (domain.crt) и запросу (domain.csr):

openssl rsa -noout -modulus -in domain.key | openssl md5openssl x509 -noout -modulus -in domain.crt | openssl md5openssl req -noout -modulus -in domain.csr | openssl md5

Если команды вернули одинаковый вывод, то, скорее всего, этот ключ, запрос и сертификат связаны.

Создание закрытого ключа

Чтобы создать закрытый 2048-битный ключ, защищённый паролем, введите:

openssl genrsa -des3 -out domain.key 2048

По запросу введите пароль, чтобы продолжить.

Создание сертификата для существующего закрытого ключа

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

Следующая команда создаст сертификат (domain.csr) для существующего ключа (domain.key):

openssl req -key domain.key -new -x509 -days 365 -out domain.crt

Ответьте на запросы программы, чтобы продолжить.

  • Опция -x509 создаёт самоподписанный сертификат. Опция -days 365 задаёт срок действия сертификата в днях.
  • Опция –new запускает запрос данных для создания CSR.

Сценарий №1 — найти следующего в связке

Связка сертификатов — Объединение нескольких X.509 сертификатов в один файл, чаще всего в формате PEM. Связка передается по сети в момент протокола рукопожатия SSL/TLS.

Самый сок начинается, когда имеете дело со связкой сертификатов, a. k. a certificate chain. Часто просматривая лапшу в связке ключей jks непросто понять как найти родительский сертификат, когда там россыпь новых и старых сертификатов на несколько доменных имен.

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

Существует несколько типов SSL-сертификатов.

Сертификат с проверкой домена (Domain Validation), например, DomainSSL или AlphaSSL. Самый простой и дешевый тип SSL-сертификатов. Подтверждает только домен. Не содержит информации о владельце, поэтому не предназначен для оказания коммерческих услуг на сайте. Физические лица могут использовать только этот тип сертификатов, но он доступен и для юридических лиц.

Сертификат с проверкой домена и организации (Organization Validation), например, OrganizationSSL. Подтверждает не только домен, но и его принадлежность компании. Центр авторизации проверит ее существование, а пользователь сможет увидеть ее название на сайте в информации о сертификате, кликнув на «замок» рядом с адресной строкой браузера.

Сертификат с расширенной проверкой организации (Extended Validation) – например, ExtendedSSL. Считается самым надёжным и предназначен для крупных организаций. При его оформлении центр сертификации проведет расширенную проверку налоговой и коммерческой деятельности компании.

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

При заказе сертификатов Extended Validation или Organization Validation, центр сертификации может запросить следующие виды документов:

  • Свидетельство ИНН / КПП;
  • Свидетельство ОГРН;
  • Приказ о назначении директора;
  • Свидетельство о регистрации доменного имени;
  • Устав организации (первые 3 и последние 3 страницы);
  • Счета на оплату телефонных разговоров с номера компании за последние 3 месяца, с обязательным указанием в счетах названия и номера телефона организации и названия организации-поставщика услуг.

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

Установка ssl-сертификата

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

Форматы сертификатов

До этого в руководстве рассматривались только сертификаты X.509 с кодированием ASCII PEM. Однако существует множество других форматов. Некоторые форматы позволяют объединить компоненты – ключ, запрос, сертификат – в один файл.

Шифрование закрытого ключа

Следующая команда возьмёт незашифрованный ключ (unencrypted.key) и зашифрует его (encrypted.key):

openssl rsa -des3 -in unencrypted.key -out encrypted.key

Введите пароль, чтобы зашифровать ключ.

Итоги

В данной статье мы разобрались как работает протокол TLS и для чего он нужен. На практике научились создавать собственные сертификаты и использовать их в Java приложении на Spring Boot. Надеюсь, представленная информация оказалась Вам полезной. Спасибо за внимание!

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