Создать сертификаты в формате PEM

Просмотр категорий

Создать сертификаты в формате PEM

9 min read

Обзор #

RELIANOID способен управлять соединениями HTTPS (профиль HTTP), поэтому системный администратор должен создавать свои собственные сертификаты (самозаверяющие сертификаты) или получать подписанные сертификаты центром сертификации, в обоих случаях сертификат должен быть создан в формате PEM.

Защищенный сертификат должен быть создан без пароля, а ключи и CSR должны быть созданы на сервере для обеспечения безопасности.

Позитивные SSL-протоколы готовы к использованию в формате PEM, но Rapid SSL необходимо конвертировать, поскольку каждый файл содержит сертификат, промежуточный ЦС и корневой ЦС, разделенные.

Требования #

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

Сначала сгенерируйте ключ без ключевой фразы.

root@noid-ee-01:~# openssl genrsa -out хост_домен_com.key 2048

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

root@noid-ee-01:~# openssl req -new -key хост_домен_com.key -out хост_домен_com.csr

Как только сертификат и промежуточные файлы CA доставлены, убедитесь, что получили корневой сертификат эмитента.
Все отдельные файлы должны быть в формате PEM: сертификат сервера, промежуточный сертификат и сертификат корневого центра сертификации. Если это не так, преобразуйте файл с помощью следующей команды:

root@noid-ee-01:~# openssl x509 -in certFileName.csr -outform PEM -out ConvertCertFileName.pem

Наконец, у нас есть закрытый ключ, выданный сертификат, промежуточный сертификат и сертификат корневого центра сертификации. Все это содержимое файла должно быть объединено для создания файла PEM в формате UNIX.

Создать сертификат SSL в формате PEM #

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

Подготовьте компоненты #

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

Объедините компоненты #

Откройте текстовый редактор или используйте инструменты командной строки, чтобы объединить закрытый ключ, сертификат, промежуточный сертификат ЦС (если применимо) и корневой сертификат ЦС (если необходимо) в один файл PEM, как показано ниже.

-----BEGIN RSA PRIVATE KEY ----- Закрытый ключ (без парольной фразы) -----END RSA PRIVATE KEY ----- ----- BEGIN CERTIFICATE ----- Сертификат (CN= www.mydomain.com) -----КОНЕЦ СЕРТИФИКАТА----- -----НАЧАЛО СЕРТИФИКАТА----- Промежуточный (промежуточный центр сертификации, если существует) -----КОНЕЦ СЕРТИФИКАТА----- -----НАЧАЛО СЕРТИФИКАТА----- Корневой (КОРНЕВОЙ ЦС, подписывающий сертификат) -----КОНЕЦ СЕРТИФИКАТА-----

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

-----BEGIN RSA PRIVATE KEY-----
uiMTxBQnK9ApC5eq1mrBooECgYB4925pDrTWTbjU8bhb/7BXsjBiesBBVO43pDYL
nUVxhqt4DT+4Vp5S7D9FQ+HagbhVInQXKXtT7FNFhpIxpRy512ElSuWvrELiZOwe
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
wYDVR0fBDwwOjA4oDagNIYyaHR0cDovL3JhcGlkc3NsLWNybC5n
DYmhNE0IgXx6XRHiMAwGA1UdEwEB/wQCMAAwSQYIKwYBBQUHAQEEPTA7MDkGCCsG
gOYD8kmKOsxLRWeZo6Tn8
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
EgYDVR0TAQH/BAgwBgEB/wIBADA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3Js
JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmdlb3RydXN0LmNvbTANBgkqhkiG9w0B
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
-----END CERTIFICATE-----

Обязательно нужно преобразовать весь PEM-файл в формат UNIX. Для тестирования и использования с фермами профилей HTTPS доступен сертификат с именем zencert.pem или noidcert.pem .

Убедитесь, что порядок сертификатов следующий:

1. Ваш сертификат
2. Промежуточный сертификат CA (если применимо)
3. Корневой сертификат ЦС

Сохранить составной файл PEM #

Сохраните объединенный файл PEM с расширением .pem. Этот файл будет содержать закрытый ключ и всю цепочку сертификатов.

Используйте файл PEM #

Теперь вы можете использовать файл PEM в конфигурации вашего сервера. В зависимости от программного обеспечения вашего сервера (например, Apache, Nginx, RELIANOID), вам может потребоваться указать путь к файлу PEM в конфигурации SSL. В RELIANOIDпросто загрузите сертификат SSL с помощью веб-интерфейса и назначьте его как Включенный сертификат в любой ферме HTTPS.

Проверить конфигурацию #

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

Создайте самозаверяющий SSL-сертификат в формате PEM. #

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

1. Сгенерируйте файлы ключа и сертификата с 4096-битным RSA-ключом сроком на 1 год без парольной фразы, используя следующую команду:

root@noid-ee-01:~# openssl req -nodes -new -x509 -newkey rsa:4096 -keyout server.key -out server.cert -days 365
Генерация закрытого ключа RSA............................++++ .................... .................................................. .................................................. ...................................++++ запись нового закрытого ключа в 'server.key' - ---- Вас попросят ввести информацию, которая будет включена в ваш запрос на сертификат. То, что вы собираетесь ввести, — это то, что называется отличительным именем или DN. Полей довольно много, но вы можете оставить некоторые пустыми. Для некоторых полей будет значение по умолчанию. Если вы введете «.», поле останется пустым. ----- Название страны (2-буквенный код) [AU]: название штата или провинции (полное название) [Some-State]: название населенного пункта (например, город) []: название организации (например, компания) [Интернет-виджеты Pty Ltd]: Название организационного подразделения (например, раздел) []: Общее имя (например, полное доменное имя сервера или ВАШЕ имя) []: Адрес электронной почты []:

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

2. Объедините ключ и сертификат в файл PEM, используя следующую команду:

root@noid-ee-01:~# cat server.key server.cert >> server.pem

Эта команда объединяет ключ и сертификат в один файл PEM.

3. Ваш самоподписанный SSL-сертификат в формате PEM ( server.pem ) теперь готов к использованию с вашим прокси-сервером, веб-сервисами или интернет-сервисами.

Как просмотреть содержимое SSL-сертификата #

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

Команда OpenSSL для получения сведений о сертификате #

Откройте терминал или окно командной строки в вашей системе.

Используйте следующую команду OpenSSL для просмотра содержимого сертификата SSL:

root@noid-ee-01:~# openssl x509 -in certificate.pem -text -noout

Замените certificate.pem на путь к файлу вашего SSL-сертификата.

Если ваш сертификат имеет формат PEM, эта команда отобразит подробную информацию о сертификате, включая:

эмитент
Тема
Срок действия (даты начала и окончания)
Информация об открытом ключе
Расширения сертификатов
Алгоритм подписи
Отпечатки пальцев (SHA-1, SHA-256 и т. д.)

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

Проверка сертификатов DER #

Если ваш сертификат имеет формат DER, а не PEM, вы можете использовать опцию -inform der, чтобы указать входной формат:

root@noid-ee-01:~# openssl x509 -inform der -in certificate.pem -text -noout

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

root@noid-ee-01:~# openssl x509 -in certificate.pem -text -noout > certificate_details.txt

Эта команда сохранит сведения о сертификате в файле с именем certificate_details.txt.

Используя инструмент командной строки OpenSSL, вы можете легко проверить содержимое сертификата SSL и проверить его данные, что поможет вам обеспечить безопасность и достоверность ваших соединений SSL/TLS.

Проверка наличия промежуточного и корневого центра сертификации в сертификате SSL #

Проверка наличия промежуточных и корневых сертификатов CA в сертификате SSL включает проверку цепочки сертификатов. Вот как вы можете это сделать:

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

root@noid-ee-01:~# openssl crl2pkcs7 -nocrl -certfile certificate.pem | openssl pkcs7 -print_certs -noout 
subject=CN = mydomain.com Issuer=C = США, O = "DigiCert, Inc.", CN = RapidSSL Global TLS RSA4096 SHA256 2022 CA1

В приведенном выше примере присутствует только сертификат.

root@noid-ee-01:~# openssl crl2pkcs7 -nocrl -certfile certificate.pem | openssl pkcs7 -print_certs -noout 
subject=CN = mydomain.com Issuer=C = США, O = "DigiCert, Inc.", CN = RapidSSL Global TLS RSA4096 SHA256 2022 CA1 subject=C = США, O = "DigiCert, Inc.", CN = RapidSSL Global TLS RSA4096 SHA256 2022 Эмитент CA1 = C = США, O = DigiCert Inc, OU = www.digicert.com, CN = Глобальный корневой центр сертификации DigiCert

В приведенном выше примере присутствуют как сертификат, так и промежуточный уровень.

Замените certificate.pem путем к файлу сертификата SSL.

Кроме того, используйте OpenSSL для просмотра цепочки сертификатов, представленной SSL-сервером во время рукопожатия. Выполните следующую команду:

root@noid-ee-01:~# openssl s_client -connect mydomain.com:443 -showcerts

Замените mydomain.com доменным именем сервера с поддержкой SSL, к которому вы хотите подключиться.

Найдите разделы с надписью «Цепочка сертификатов» или «Цепочка сертификатов (PEER)». Это покажет сертификаты, представленные сервером, начиная с сертификата конечного объекта и заканчивая сертификатом корневого центра сертификации.

Проверьте промежуточные и корневые сертификаты ЦС, проверив каждый сертификат в цепочке, чтобы убедиться, что присутствуют как промежуточный, так и корневой сертификаты ЦС.
Промежуточный сертификат CA: Найдите в цепочке сертификат, который соответствует эмитенту сертификата конечного объекта, но предшествует ему.
Корневой сертификат ЦС: Убедитесь, что последний сертификат в цепочке является сертификатом корневого центра сертификации.

Альтернативно вы можете использовать онлайн-инструменты проверки SSL, которые автоматически проверяют цепочку сертификатов и проверяют наличие промежуточных и корневых сертификатов CA. Такие инструменты, как тест SSL-сервера SSL Labs или инструмент диагностики установки SSL DigiCert, могут предоставить подробную информацию о цепочке сертификатов.

Выполнив эти шаги, вы можете проверить, присутствуют ли в сертификате SSL промежуточные и корневые сертификаты CA, и обеспечить целостность и безопасность ваших соединений SSL/TLS.

📄 Загрузите этот документ в формате PDF #

    EMAIL: *

    Разработано компанией BetterDocs