* / \ ( ) ?.,&.

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

  • 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

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

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

openssl req -batch -new -newkey rsa:2048 -nodes -keyout cert.key -subj ‘/C=RU/ST=Ivanovo/L=Ivanovo/O=Guru Project/OU=Research team/[email protected]/CN=primer.com’ -out cert.csr

Удалить пароль с ключа (требуется в том случае, когда сертификат устанавливается вручную в конфигурацию Apache; в противном случае он во время запуска будет просить вновь ввести пароль):

openssl rsa -in cert.key -out cert.key

после чего указываем пароль через консоль (либо -passin pass:tv0ip4ssw0rd, что не так безопасно, поскольку пароль помещается в .history)

Посмотреть информацию CSR:

openssl req -noout -text -in cert.csr

Получить данные сертификата (чтобы установить, кем он был выдан, к примеру):

openssl x509 -noout -text -in cert. crt

Выполнить проверку соответствия ключа сертификату:

openssl x509 -noout -modulus -in cert.crt | openssl md5 openssl rsa -noout -modulus -in cert.key | openssl md5

Два значения должны быть равнозначными.

Содержание

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

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

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

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

 ——BEGIN CERTIFICATE—— ASb-SdGSIk3DqvPAqCAMIACAQSxALBgkqddhgrtkiG9w0BBwGg&KLPmowggHXAh
Ub7egest5u0M63v1Z2A/kFghj5CSqGSIb3DQBAs+klMF8xCzAnbijNByhTMd54vSA (. ……) E+cFEGjgrHJgrA+eRP6XraWw8iiguUtfgrrcJgg4P6XVS4l39+l5aCEGGbauLP5W6 K99orhIhgQrlX2+KeDi+xBG2coigehIGFeQS/16S36ITcluHGY5EA+&A5ujbhgrYHS ——END CERTIFICATE——

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

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

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

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

  1. Выполните копирование файла server.
    ca-bundle в каталог, в котором у вас находятся файлы сертификата и ключа (у нас это: /etc/ssl/crt/).
  2. Далее внесите новую строку в секцию SSL в файле httpd.conf. Если эта строка уже имеется, отредактируйте ее, чтобы она имела следующий вид: SSLCertificateChainFile /etc/ssl/crt/y_server.ca-bundle
  3. В том случае, если вы используете иное расположение и иные названия файлов, вам надо будет изменить путь и имена файлов. Раздел SSL в обновленном файле config теперь получит следующий вид:

<VirtualHost 293.169.10.25:443>

DocumentRoot /var/web/html3

ServerName www.leader_domain.com

SSLEngine on

SSLCertificateFile /etc/ssl3/cert/leader_domain.crt

SSLCertificateKeyFile /etc/ssl3/cert/leader_private.key

SSLCertificateChainFile /etc/ssl3/cert/leader_server.ca-bundle ***

</VirtualHost>

*** Для Apache 1. x используйте: SSLCACertificateFile /etc/ssl3/cert/leader_server.ca-bundle

  1. Сохраните файл config и проведите перезапуск Apache.

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

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

echo ‘(‘ `openssl req  -modulus -noout -in leader_cert.csr| cut -d’=’ -f2 | wc -c` ‘-1)*4’ | bc

Проверить состояние выдачи HTTPS:

openssl s_client -connect localhost:443 -state -debug GET / HTTP/1.0

Для почтового адреса:

openssl s_client -connect localhost:993 -showcerts

На ОС Windows (в IIS в частности) применяется PFX-контейнер для SSL-сертификата, его можно сделать из файлов ключа и самого сертификата командой:

openssl pkcs12 -inkey -export -in certificate.crt yourcertificate.key -out yourcertificate.pfx

С помощью OpenSSL вы сможете легко провести любые операции, связанные с SSL сертификатами.

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


OpenSSL -что это? 21 пример команд OpenSSL, которые помогут на практике

Одним из самых популярных инструментов для создания и управления SSL-сертификатами является библиотека OpenSSL. В этой статье я расскажу о часто используемых командах OpenSSL.

Некоторые аббревиатуры, относящиеся к сертификатам:

  • SSL – Secure Socket Layer (уровень защищённых cокетов).
  • CSR – Certificate Signing Request (запрос на получение сертификата).
  • TLS – Transport Layer Security (протокол защиты транспортного уровня).
  • PEM – Privacy Enhanced Mail (формат файлов для хранения и отправки криптографических ключей).
  • SHA – Secure Hash Algorithm (алгоритм криптографического хеширования).
  • PKCS – Public-Key Cryptography Standards (стандарты криптографии с открытым ключом).
  • Создание нового секретного ключа и запрос на получение сертификата
  • Создание самозаверяемого сертификата
  • Верификация CSR-файла
  • Создание секретного RSA-ключа
  • Удаление пароля-фразы из ключа
  • Верификация секретного ключа
  • Верификация файла сертификата
  • Верификация центра сертификации
  • Проверка хеш-значения сертификата
  • Преобразование формата DER в PEM
  • Преобразование формата PEM в DER
  • Преобразование сертификата и секретного ключа в формат PKCS#12
  • Создание CSR с использованием существующего секретного ключа
  • Проверка содержимого сертификата в формате PKCS12
  • Преобразование формата PKCS12 в PEM-сертификат
  • Проверка SSL-сертификата определенного URL-адреса
  • Определение версии OpenSSL
  • Проверка даты истечения срока действия PEM-файла
  • Проверка срока действия SSL-сертификата для URL-адреса
  • Проверка, принимается ли на URL-адресеSSL V2 или V
  • Проверка того, принимается ли конкретный шифр на URL-адресе
opensslreq -out geekflare. csr -newkey rsa:2048 -nodes -keyoutgeekflare.key

Команда генерирует CSR и файл 2048-битногоRSA-ключа. Если вы собираетесь использовать этот сертификат на Apache или Nginx, то необходимо отправить CSR-файл в центр сертификации. Он предоставит вам заверенный сертификат (в формате der или pem), который нужно настроить на веб-сервере Apache или Nginx.

opensslreq -x509 -sha256 -nodes -newkey rsa:2048 -keyoutgfselfsigned.key -out gfcert.pem

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

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

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

opensslreq -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyoutgfselfsigned.key -out gfcert.pem
opensslreq -noout -text -in geekflare. csr

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

opensslgenrsa -out private.key 2048

Если нужно создать секретный RSA-ключ, используйте приведенную выше команду.

opensslrsa -in certkey.key -out nopassphrase.key

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

opensslrsa -in certkey.key –check

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

openssl x509 -in certfile.pem -text –noout

Если хотите проверить данные сертификата, такие как CN, OU и т.д., используйте приведенную выше команду, которая предоставит данные сертификата.

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

Для проверки центра сертификации можно использовать приведенную выше команду.

openssl x509 -noout -hash -in bestflare.pem
openssl x509 –inform der –in sslcert.der –out sslcert.pem

Центр сертификации предоставляет SSL-сертификат в формате .der. Если вам необходимо использовать его в формате apache или .pem, примените приведенную выше команду для соответствующего преобразования.

openssl x509 –outform der –in sslcert.pem –out sslcert.der

Если необходимо изменить формат .pem на .der.

openssl pkcs12 –export –out sslcert.pfx –inkeykey.pem –in sslcert.pem

Если необходимо использовать сертификат с Java-приложением, принимающим только формат PKCS#12, примените приведенную выше команду. Она генерирует один pfx файл, содержащий сертификат и ключ.

Совет. Вы также можете включить цепочку сертификатов, передав параметр -chain, как показано в примере ниже.

openssl pkcs12 –export –out sslcert.pfx –inkeykey.pem –in sslcert.pem -chain cacert.pem
opensslreq –out certificate.csr –keyexisting.key –new

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

openssl pkcs12 –info –nodes –in cert.p12

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

openssl pkcs12 –in cert.p12 –out cert.pem

Если нужно использовать существующий файл в формате pkcs12 на Apache или только в формате pem, в этом поможет приведенная выше команда.

openssls_client -connect yoururl.com:443 –showcerts

Я часто использую эту команду для проверки SSL-сертификата URL-адреса. Это удобно для проверки данных протокола, шифрования и сертификата.

openssl version
openssl x509 -noout -in certificate.pem -dates

Команда выведет дату в формате notBefore и notAfter. notAfter — это та дата, которая нужна, чтобы определить, истек ли срок действия сертификата или он еще действителен.

Пример:

[root@Chandan opt]# openssl x509 -noout -in bestflare.pem -dates
notBefore=Jul 4 14:02:45 2015 GMT
notAfter=Aug 4 09:46:42 2015 GMT
[root@Chandan opt]#
openssls_client -connect secureurl. com:443 2>/dev/null | openssl x509 -noout –enddate

Команда позволяет контролировать дату истечения срока действия SSL- сертификата удаленно или для конкретного URL-адреса.

Пример:

[root@Chandan opt]# openssls_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate
notAfter=Dec 8 00:00:00 2015 GMT

Чтобы проверить SSL V2:

openssls_client -connect secureurl.com:443 -ssl2

Чтобы проверить SSL V3:

openssls_client -connect secureurl.com:443 –ssl3

Чтобы проверить TLS 1.0:

openssls_client -connect secureurl.com:443 –tls1

Чтобы проверить TLS 1.1:

openssls_client -connect secureurl.com:443 –tls1_1

Чтобы проверить TLS 1.2:

openssls_client -connect secureurl.com:443 –tls1_2

Если необходимо проверить, включен ли SSL V2 / V3 или нет, используйте приведенную выше команду. Если он включен, то вы получите сообщение «CONNECTED», в противном случае –сообщение «handshake failure».

openssls_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

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

Для этого необходимо задать шифр и URL-адрес. Если шифр будет принят, вы получите сообщение «CONNECTED», иначе – сообщение «handshake failure».

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

Пожалуйста, оставляйте свои отзывы по текущей теме материала. За комментарии, отклики, лайки, дизлайки, подписки огромное вам спасибо!

Вадим Дворниковавтор-переводчик статьи «21 OpenSSL Examples to Help You in Real-World»

Генерация запроса на подпись сертификата вручную (CSR) Использование OpenSSL

Этот урок покажет вам, как вручную создать Запрос на подпись сертификата (или CSR) в среде веб-хостинга Apache или Nginx с использованием OpenSSL. Нажмите здесь для обучения по заказу сертификатов, или здесь для получения дополнительной информации о том, как установить новый сертификат SSL. com.

Чтобы получить дополнительные полезные инструкции и последние новости кибербезопасности, подпишитесь на информационный бюллетень SSL.com здесь:

Видео

В этих инструкциях мы собираемся использовать OpenSSL req утилита для генерации как закрытого ключа, так и CSR в одной команде. Генерация секретного ключа таким способом гарантирует, что вам будет предложено ввести пароль для защиты закрытого ключа. Во всех приведенных примерах команд замените имена файлов, показанные в ALL CAPS, на фактические пути и имена файлов, которые вы хотите использовать. (Например, вы можете заменить PRIVATEKEY.key с /private/etc/apache2/server. key в среде MacOS Apache.) Это практическое руководство охватывает генерацию обоих RSA и ECDSA ключи.

RSA

Приведенная ниже команда OpenSSL сгенерирует 2048-битный закрытый ключ RSA и CSR:

openssl req -newkey rsa: 2048 -keyout PRIVATEKEY.key -out МОЙCSR.csr

Давайте разберем команду:

  • openssl это команда для запуска OpenSSL.
  • req это утилита OpenSSL для создания CSR.
  • -newkey rsa:2048 сообщает OpenSSL создать новый 2048-битный закрытый ключ RSA. Если вы предпочитаете ключ 4096 бит, вы можете изменить это число на 4096.
  • -keyout PRIVATEKEY.key указывает, где сохранить файл закрытого ключа.
  • -out MYCSR.csr указывает, где сохранить CSR .
  • С этими двумя последними элементами не забудьте использовать свои собственные пути и имена файлов для закрытого ключа и CSR, а не заполнители.

После ввода команды нажмите вводить, Вам будет представлен ряд подсказок:

  • Сначала создайте и подтвердите парольную фразу. Запомните эту парольную фразу, потому что она понадобится вам снова для доступа к вашему секретному ключу.
  • Теперь вам будет предложено ввести информацию, которая будет включена в ваш CSR, Эта информация также известна как Отличное имя или DN, Распространенное имя поле обязательно для SSL.com при отправке вашего CSR, но остальные не являются обязательными. Если вы хотите пропустить дополнительный элемент, просто введите вводить когда это появится:
    • Игровой автомат Имя страны (необязательно) занимает две буквы код страны.
    • Игровой автомат Название населенного пункта Поле (необязательно) предназначено для вашего города.
    • Игровой автомат Название организации поле (необязательно) предназначено для названия вашей компании или организации.
    • Игровой автомат Распространенное имя поле (обязательное) используется для Полное доменное имя (FQDN) сайта этот сертификат будет защищать.
    • Ваш e-mail (опционально)
    • Игровой автомат Пароль для вызова поле является необязательным и может быть пропущено.

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

Вернуться к началу

ECDSA

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

Эта команда OpenSSL сгенерирует файл параметров для 256-битного ключа ECDSA:

openssl genpkey -genparam -algorithm ec -pkeyopt ec_paramgen_curve: P-256 -out ECPARAM. pem
  • openssl genpkey запускает утилиту openssl для генерации закрытого ключа.
  • -genparam генерирует файл параметров вместо закрытого ключа. Вы также можете сгенерировать закрытый ключ, но используя файл параметров при генерации ключа и CSR гарантирует, что вам будет предложено ввести пароль.
  • -algorithm ec определяет алгоритм эллиптической кривой.
  • -pkeyopt ec_paramgen_curve:P-256 выбирает 256-битную кривую. Если вы предпочитаете 384-битную кривую, измените часть после двоеточия на P-384.
  • -out ECPARAM.pem предоставляет путь и имя файла для файла параметров.

Теперь укажите ваш файл параметров при создании CSR:

openssl req -newkey ec: ECPARAM. pem -keyout PRIVATEKEY.key -out МОЙCSR.csr

Команда такая же, как мы использовали в примере RSA выше, но -newkey RSA:2048 был заменен на -newkey ec:ECPARAM.pem, Как и прежде, вам будет предложено ввести пароль и информацию о различающемся имени для CSR.

При желании вы можете использовать перенаправление для объединения двух команд OpenSSL в одну строку, пропуская создание файла параметров, как показано ниже:

openssl req -newkey ec: <(openssl genpkey -genparam -algorithm ec -pkeyopt ec_paramgen_curve: P-256) -keyout PRIVATEKEY.key -out MYCSR.csr

Далее Шаги

Для получения дополнительной информации об установке сертификата см. прочитайте здесь, для привязки к IIS 10, читать здесь. 

Что такое OpenSSL и как он работает?

Перейти к содержимому

Категории

  • Статьи
  • Новости отрасли
  • Установка
  • База знаний
  • Ошибки SSL

Сертификаты SSL сейчас очень востребованы. Ландшафт шифрования резко изменился с тех пор, как Google запустил кампанию «HTTPS Everywhere». Во-первых, они стимулировали SEO в качестве стимула для установки цифровых сертификатов, а позже Chrome сделал HTTPS практически обязательным для всех. Если вы не используете SSL-сертификат, популярные браузеры, такие как Chrome и Firefox, пометят ваш сайт как незащищенный.

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

Что такое OpenSSL?

Open SSL — это универсальная криптографическая библиотека, которая предлагает приложение протокола TLS с открытым исходным кодом. Впервые выпущенный в 1998 году, он доступен для систем Linux, Windows, macOS и BSD. OpenSSL позволяет пользователям выполнять различные задачи, связанные с SSL, включая CSR (запрос на подпись сертификата) и генерацию закрытых ключей, а также установку SSL-сертификата.

Большинство дистрибутивов Linux поставляются с предварительно скомпилированным OpenSSL, но если вы работаете в системе Windows, вы можете получить его отсюда.

Зачем вам OpenSSL?

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

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

Как использовать OpenSSL?

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

Проверьте свою версию OpenSSL

Крайне важно знать, какая у вас версия OpenSSL, поскольку она определяет, какие криптографические алгоритмы и протоколы вы можете использовать. Последняя версия OpenSSL — 3.0.0. Он поддерживает протокол TLS 1.3 и восстанавливает поддержку FIPS 140.

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

Версия openssl –a

Генерация CSR

Вы можете использовать OpenSSL для создания кода CSR. CSR — это блок закодированного текста с данными о вашем сайте и компании. Вы должны отправить CSR в свой центр сертификации для утверждения.

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

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

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

-subj Switch- альтернативный способ создания кода CSR

Вы также можете отправьте свою информацию в самой командной строке с помощью кнопки  – переключатель subj .

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

openssl req -new -key yourdomain.key -out yourdomain.csr \ -subj "/C=US/ST=CA/L=San Francisco/O=Your Company , Inc./OU=IT/CN=yourdomain.com"

Отдельно сгенерируйте закрытый ключ

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

В качестве размера ключа следует выбрать 2048 бит при использовании алгоритма ключа RSA и 256 бит при использовании алгоритма ECDSA. Любой размер ключа меньше 2048 не является безопасным, а более высокое значение может снизить производительность.

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

Когда вы будете готовы сгенерировать свой закрытый ключ (с алгоритмом RSA), выполните следующие команды:

openssl genrsa -out yourdomain.key 2048

Эта команда создаст файл yourdomain.key в вашем текущем каталоге. Ваш закрытый ключ будет иметь формат PEM .

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

cat yourdomain. key

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

openssl rsa -text yourdomain.key -noout

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

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

Одновременное создание закрытого ключа и CSR

OpenSSL настолько универсален, что есть команда для создания закрытого ключа и CSR.

требуется openssl -новый \
-newkey rsa:2048 -nodes -keyout yourdomain.key \
-out yourdomain.csr \
-subj "/C=US/ST=CA/L=Сан-Франциско/O=Ваша компания, Inc./OU=IT/CN=yourdomain.com"

Эта команда генерирует закрытый ключ без кодовой фразы (-keyout yourdomain.key) и кода CSR (out yourdomain.csr).

Проверьте информацию своего CSR

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

openssl req -text -in yourdomain. csr -noout –verify

Отправить CSR в ЦС . Убедитесь, что вы включили теги —BEGIN CERTIFICATE REQUEST— и —END CERTIFICATE REQUEST— и вставьте все в форму заказа поставщика SSL.

Проверьте данные вашего сертификата

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

openssl x509 -text -in yourdomain.crt –noout

На этом наш список распространенных команд OpenSSL заканчивается. Если вам нужна дополнительная информация о том, что такое OpenSSL и как он работает, эта бесплатная книга — отличный ресурс.

Последнее обновление: 16 сентября 2022 г.

Перейти к началу

Краткое справочное руководство по OpenSSL | DigiCert.com

Оглавление
  1. Проверка версии OpenSSL
  2. Создание OpenSSL и CSR
  3. Выбор вариантов генерации ключей
  4. Создание личного ключа
  5. Извлечение открытого ключа
  6. Создание CSR
  7. Использование переключателя -subj
  8. Создание CSR с помощью одной команды
  9. Проверка информации CSR
  10. Отправка CSR в ЦС
  11. Просмотр информации о сертификате
  12. Проверка совпадения ключей
  13. Преобразование форматов сертификатов

Узнайте, как использовать наиболее распространенные команды OpenSSL

OpenSSL — это инструмент командной строки с открытым исходным кодом, который обычно используется для создания закрытых ключей, создания CSR, установки сертификата SSL/TLS и определения информации о сертификате. Мы разработали это краткое справочное руководство, чтобы помочь вам понять наиболее распространенные команды OpenSSL и способы их использования.

Это руководство не является исчерпывающим. Если вы ищете более глубокий и всесторонний взгляд на OpenSSL, мы рекомендуем вам ознакомиться с OpenSSL Cookbook Ивана Ристиć.

Примечания к руководству: Ubuntu 16.04.3 LTS использовалась для написания этого руководства.
В некоторых примерах команд используется ‘ \ ‘ (обратная косая черта) для создания разрыва строки, чтобы их было легче понять.

Если у вас нет времени разбираться в деталях команд OpenSSL и генерации CSR, или вы хотите сэкономить время, воспользуйтесь нашим мастером OpenSSL CSR Wizard.

Проверка вашей версии OpenSSL

Определение используемой версии OpenSSL является важным первым шагом при подготовке к созданию закрытого ключа или CSR. Ваша версия OpenSSL определяет, какие криптографические алгоритмы можно использовать при генерации ключей, а также какие протоколы поддерживаются. Например, OpenSSL версии 1.0.1 была первой версией, поддерживающей TLS 1.1 и TLS 1.2. Информация о том, какую версию OpenSSL вы используете, также важна для получения помощи в устранении неполадок, с которыми вы можете столкнуться.

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

 версия openssl -a 

В этой команде ключ -a отображает полную информацию о версии, включая:

  • Номер версии и дата выпуска версии (OpenSSL 1.0.2g 1 марта 2016 г.).
  • Опции, которые были собраны с библиотекой (options).
  • Каталог, в котором хранятся сертификаты и закрытые ключи (OPENSSLDIR).

Используя команду openssl version -a, был создан следующий вывод:

  OpenSSL 1. 0.2g 1 марта 2016 г. 
построено на: воспроизводимая сборка, дата не указана
платформа: debian-amd64
  опции: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) 
компилятор: cc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -
D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-
сильный -Wformat -Werror=format-security -Wdate-time -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_ASM -DECP_NISTZ256_ASM
  OPENSSLDIR: "/usr/lib/ssl"  

OpenSSL и создание CSR

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

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

Выбор параметров генерации ключей

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

Ключевой алгоритм

Для алгоритма ключа нужно учитывать его совместимость. По этой причине мы рекомендуем вам использовать RSA. Однако, если у вас есть конкретная потребность в использовании другого алгоритма (например, ECDSA), вы можете использовать и его, но помните о проблемах совместимости, с которыми вы можете столкнуться.

Примечание: В этом руководстве рассматривается только создание ключей с использованием алгоритма RSA.

Размер ключа

Для размера ключа необходимо выбрать длину бита не менее 2048 при использовании RSA и 256 при использовании ECDSA; это наименьшие размеры ключей, разрешенные для SSL-сертификатов. Если вам не нужно использовать ключ большего размера, мы рекомендуем придерживаться 2048 с RSA и 256 с ECDSA.

Примечание: В более старых версиях OpenSSL, если размер ключа не указан, используется размер ключа по умолчанию 512. Любой размер ключа меньше 2048 считается небезопасным и никогда не должен использоваться.

Парольная фраза

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

Генерация личного ключа

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

Используйте следующую команду для создания закрытого ключа с использованием алгоритма RSA:

 openssl genrsa -out yourdomain.key 2048 

Эта команда создает закрытый ключ в вашем текущем каталоге с именем yourdomain. key (-out yourdomain.key) с использованием алгоритма RSA (genrsa) с длиной ключа 2048 бит (2048). Сгенерированный ключ создается с использованием формата OpenSSL, называемого PEM.

Используйте следующую команду для просмотра необработанного закодированного содержимого (формат PEM) закрытого ключа:

 кот yourdomain.key 

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

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

 openssl rsa-text-in yourdomain.key-noout 

Переключатель -noout пропускает вывод закодированной версии закрытого ключа.

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

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

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

 openssl rsa -in yourdomain.key -pubout -out yourdomain_public.key 

Создание CSR

После создания закрытого ключа вы готовы создать свой CSR. CSR создается с использованием формата PEM и содержит часть закрытого ключа с открытым ключом, а также информацию о вас (или вашей компании).

Используйте следующую команду, чтобы создать CSR, используя только что сгенерированный закрытый ключ:

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

После ввода команды вам будет задан ряд вопросов. Ваши ответы на эти вопросы будут включены в CSR. Ответьте на вопросы, как описано ниже:

Название страны (двухбуквенный код) Двухбуквенный код страны, в которой зарегистрирована ваша компания.
Название штата или провинции (полное название) Штат/провинция, где ваша компания находится на законных основаниях.
Название местности (например, город) Город, в котором юридически зарегистрирована ваша компания.
Название организации (например, компания) Официально зарегистрированное название вашей компании (например, YourCompany, Inc.).
Название организационного подразделения (например, секции) Название вашего отдела в организации. (Вы можете оставить эту опцию пустой; просто нажмите , введите .)
Общее имя (например, полное доменное имя сервера) Полное доменное имя (FQDN) (например, www. example.com).
Адрес электронной почты Ваш адрес электронной почты. (Вы можете оставить эту опцию пустой; просто нажмите Введите .)
Пароль вызова Оставьте эту опцию пустой (просто нажмите Введите ).
Дополнительное название компании Оставьте эту опцию пустой (просто нажмите Введите ).

Некоторые из приведенных выше вопросов CSR имеют значения по умолчанию, которые будут использоваться, если вы оставите ответ пустым и нажмете Введите . Эти значения по умолчанию взяты из файла конфигурации OpenSSL, расположенного в OPENSSLDIR (см. Проверка версии OpenSSL). Если вы хотите оставить вопрос пустым, не используя значение по умолчанию, введите « . » (точка) и нажмите Введите .

Использование переключателя -subj

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

Используйте следующую команду, чтобы отключить подсказки с вопросами при создании CSR:

 openssl req -new -key yourdomain.key -out yourdomain.csr \
-subj "/C=US/ST=Юта/L=Lehi/O=Your Company, Inc./OU=IT/CN=yourdomain.com" 

Эта команда использует ваш файл закрытого ключа (-key yourdomain.key) для создания нового CSR (-out yourdomain.csr) и отключает подсказки с вопросами, предоставляя информацию CSR (-subj).

Создание CSR с помощью одной команды

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

Используйте следующую команду для создания закрытого ключа и CSR:

 запрос openssl -новый \
-newkey rsa:2048 -nodes -keyout yourdomain. key \
-out yourdomain.csr \
-subj "/C=US/ST=Юта/L=Lehi/O=Your Company, Inc./OU=IT/CN=yourdomain.com" 

Эта команда создает новый закрытый ключ (-newkey) с использованием алгоритма RSA с длиной ключа 2048 бит (rsa:2048) без использования кодовой фразы (-nodes), а затем создает файл ключа с именем yourdomain.key ( -keyout вашдомен.ключ).

Затем команда создает CSR с именем файла yourdomain.csr (-out yourdomain.csr) и предоставляет информацию для CSR (-subj).

Примечание: Хотя можно добавить альтернативное имя субъекта (SAN) в CSR с помощью OpenSSL, этот процесс немного сложен и запутан. Если вам нужно добавить SAN к вашему сертификату, это можно легко сделать, добавив их в форму заказа при покупке сертификата DigiCert.

Проверка информации CSR

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

Используйте следующую команду, чтобы просмотреть информацию в вашем CSR перед отправкой в ​​ЦС (например, DigiCert):

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

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

Запустив эту команду, вы получите следующий вывод:

  проверить OK 
Запрос сертификата:
    Данные:
        Версия: 0 (0x0)
          Тема: C=US, ST=Юта, L=Lehi, O=Your Company, Inc., OU=IT, CN=yourdomain.com 
        Информация об открытом ключе субъекта:
            Алгоритм открытого ключа: rsaEncryption
                Открытый ключ: (2048 бит)
                Модуль:
                    00:bb:31:71:40:81:2c:8e:fb:89:25:7c:0e:cb:76:
                    [...удалено 17 строк]
                Показатель: 65537 (0x10001)
        Атрибуты:
            в0:00
    Алгоритм подписи: sha256WithRSAEncryption
         0b:9b:23:b5:1f:8d:c9:cd:59:bf:b7:e5:11:ab:f0:e8:b9:f6:
         [. ..удалено 14 строк] 

В первой строке приведенного выше вывода видно, что CSR был проверен (подтвердите OK). В четвертой строке поле Тема: содержит информацию, которую вы указали при создании CSR. Убедитесь, что эта информация верна.

Если какая-либо информация неверна, вам потребуется создать совершенно новый CSR, чтобы исправить ошибки. Это связано с тем, что файлы CSR имеют цифровую подпись, а это означает, что если в файле будет изменен хотя бы один символ, он будет отклонен ЦС.

Отправка CSR в ЦС

Когда вы будете готовы отправить CSR в ЦС (например, DigiCert), вам нужно сделать это в формате PEM — необработанный закодированный текст CSR, который вы видите при открытии его в текстовом редакторе.

Используйте следующую команду для просмотра необработанных выходных данных CSR:

 кот yourdomain.csr 

Вы должны скопировать все содержимое вывода (включая строки ——BEGIN CERTIFICATE REQUEST—— и ——END CERTIFICATE REQUEST——) и вставить его в форму заказа DigiCert. .

Готовы заказать сертификат SSL?

КупитьПодробнее

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

После получения сертификата от центра сертификации (например, DigiCert) мы рекомендуем убедиться, что информация в сертификате верна и соответствует вашему закрытому ключу. Вы делаете это с помощью команды x509.

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

 openssl x509 -text -in yourdomain.crt -noout 

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

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

Используйте следующие команды для создания хэша открытого ключа каждого файла:

 openssl pkey -pubout -in . \private.key | опенсл ша256 
 openssl req -pubkey -in .\request.csr -noout | Опенссл Ша256 
 openssl x509 -pubkey -in .\certificate.crt -noout | Опенссл Ша256 

Примечание: Приведенные выше команды следует вводить одну за другой, чтобы создать три отдельных выхода.

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

Ошибки несоответствия ключей

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

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

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

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

PEM в PKCS#12

Формат PKCS#12 — это архивный файл, в котором хранятся как сертификат, так и закрытый ключ. Этот формат удобен для переноса сертификатов и ключей из одной системы в другую, так как содержит все необходимые файлы. Файлы PKCS#12 используют либо .pfx или .p12 расширение файла.

Используйте следующую команду для преобразования ключа PEM и сертификата в формат PKCS#12 (т. е. в один файл . pfx):

 openssl pkcs12 -export -name "yourdomain-digiticert-(срок действия)" \
-out yourdomain.pfx -inkey yourdomain.key -in yourdomain.crt 

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

Эта команда объединяет ваш закрытый ключ (-inkey yourdomain.key) и ваш сертификат (-in yourdomain.crt) в один файл .pfx (-out yourdomain.pfx) с понятным именем (-name «yourdomain-digicert -(дата истечения срока действия)»), где дата истечения срока действия — это дата истечения срока действия сертификата.

PKCS#12 для PEM

Поскольку формат PKCS#12 содержит как сертификат, так и закрытый ключ, необходимо использовать две отдельные команды для обратного преобразования файла . pfx в формат PEM.

Используйте следующую команду, чтобы извлечь закрытый ключ из файла PKCS#12 (.pfx) и преобразовать его в закрытый ключ в кодировке PEM:

 openssl pkcs12 -in yourdomain.pfx -nocerts -out yourdomain.key -nodes 

Используйте следующую команду, чтобы извлечь сертификат из файла PKCS#12 (.pfx) и преобразовать его в сертификат, закодированный PEM:

 openssl pkcs12 -in yourdomain.pfx -nokeys -clcerts -out yourdomain.crt 

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

PEM в DER

Формат DER использует кодировку ASN.1 для хранения информации о сертификате или ключе. Подобно формату PEM, DER хранит информацию о ключе и сертификате в двух отдельных файлах и обычно использует одинаковые расширения файлов (например, . key , .crt и .csr ). Расширение файла .der использовалось в приведенных ниже примерах для ясности.

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

 openssl x509 -inform PEM -in yourdomain.crt -outform DER -out yourdomain.der 

Используйте следующую команду для преобразования закрытого ключа в кодировке PEM в закрытый ключ в кодировке DER:

 openssl rsa -inform PEM -in yourdomain.key -outform DER -out yourdomain_key.der 

DER на PEM

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

 openssl x509 -inform DER -in yourdomain.der -outform PEM -out yourdomain.crt 

Используйте следующую команду для преобразования закрытого ключа в кодировке DER в закрытый ключ в кодировке PEM:

 openssl rsa -inform DER -in yourdomain_key. der -outform PEM -out yourdomain.key 

Для чего используется OpenSSL?

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

OpenSSL доступен для Windows, Linux и MacOS. Итак, прежде чем начать, убедитесь, что на вашем компьютере установлен OpenSSL. Вот список предварительно скомпилированных двоичных файлов для вашего удобства. Но, честно говоря, ОС здесь не имеет большого значения — команды в нашем случае будут идентичными.

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

Такой самозаверяющий сертификат отлично подходит, если вы хотите использовать HTTPS (HTTP поверх TLS) для защиты вашего веб-сервера Apache HTTP или Nginx, и вы знаете, что ваш сертификат не должен быть подписан ЦС.

Как мне использовать OpenSSL?

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

Начнем! Прежде всего, мы хотим проверить, установлен ли у нас OpenSSL. Для этого нам нужно запустить:

 версия openssl -a 

Если вы получили что-то подобное, вы на правильном пути:

 OpenSSL 3.0.0 7 сентября 2021 г. (библиотека: OpenSSL 3.0.0 7 сентября 2021 г.)
построено: вторник, 7 сентября, 11:46:32 2021 UTC
платформа: darwin64-x86_64-cc
варианты: бн(64,64)
компилятор: clang -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
OPENSSLDIR: "/usr/local/etc/openssl@3"
ENGINESDIR: "/usr/local/Cellar/openssl@3/3. 0.0_1/lib/engines-3"
MODULESDIR: "/usr/local/Cellar/openssl@3/3.0.0_1/lib/ossl-modules"
Источник заполнения: зависит от ОС
CPUINFO: OPENSSL_ia32cap=0x7ffaf3bfffebffff:0x40000000029c67af 

Этот код эффективно указывает версию SSL, которую вы установили, и некоторые другие детали.

Теперь первое важное дело в нашей повестке дня — создать пару ключей Открытый/Закрытый. Для этого нам необходимо ввести следующую команду:

 openssl genrsa - out passwork.key 2048 

genrsa – команда для генерации пары ключей по алгоритму RSA;

-out passwork.key – это имя выходного файла ключа;

2048 – размер ключа. Обязательно перепроверьте свои требования на этом этапе, потому что это значение может меняться в зависимости от вашего варианта использования.

Теперь у нас есть файл «passwork.key» в указанном нами каталоге. После того, как мы создали файл, мы можем, например, извлечь открытый ключ, выполнив:

 openssl rsa -in passwork. key -pubout -out passwork_public.key 

rsa — мы должны указать алгоритм, который мы использовал;

-in passwork.key – берем существующую пару ключей;

-pubout – здесь берем только публичный ключ;

-out passwork_public.key — мы экспортируем это как файл с именем passwork_public.key .

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

Команда для создания CSR выглядит следующим образом:

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

req -new — здесь мы указываем, что хотим создать что-то новое ;

-key passwork.key — здесь указываем ключ, который будем использовать;

-out passwork. csr — здесь указываем выходной файл.

После нажатия «Ввод» вы увидите что-то вроде этого:

 Вас попросят ввести информацию, которая будет включена
в ваш запрос сертификата.
То, что вы собираетесь ввести, называется отличительным именем или DN.
Полей довольно много, но вы можете оставить некоторые пустыми
Для некоторых полей будет значение по умолчанию,
Если вы введете «.», поле останется пустым. 

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

 -----
Название страны (двухбуквенный код) [AU]:US
Название штата или провинции (полное название) [Some-State]:FL
Название местности (например, город) []: Таллахасси
Название организации (например, компания) [Internet Widgits Pty Ltd]:Passwork
Название организационной единицы (например, секция) []:.
Обычное имя (например, полное доменное имя сервера или ВАШЕ имя) []:*.passwork.com
Адрес электронной почты []:[email protected]
Пожалуйста, введите следующие «дополнительные» атрибуты
будет отправлен с вашим запросом сертификата
Пароль вызова []:
Необязательное название компании []: 

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

После всех вышеперечисленных шагов у нас будет полностью сгенерированный файл CSR. В реальном мире на этом этапе мы хотели бы проверить наш файл CSR, чтобы не передать неправильный файл в ЦС. Кроме того, рекомендуется перепроверить правильность полного доменного имени.

Имея все это в виду, мы запускаем:

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

Вывод в нашем случае будет таким:

 Запрос сертификата, самоподпись, проверка OK
Запрос сертификата:
   Данные:
      Версия: 1 (0x0)
      Тема: C = США, ST = Флорида, L = Таллахасси, O = Passwork, CN = *.passwork.com, адрес электронной почты = [email protected]
      Информация об открытом ключе субъекта:
         Алгоритм открытого ключа: rsaEncryption
            Открытый ключ: (2048 бит)
            Модуль:
               00:дд:c9:5a:27:82:00:0e:cc:43:c2:99:3а:е7:0а:
               b7:c2:96:06:f1:30:d6:3e:de:7c:6d:f1:98:66:cf:
               9d:8a:9c:09:43:a9:ab:59:0f:19:29:44:ec:2d:73:
               47:38:94:78:1б:4ф:16:б6:4а:2б:45:55:0ф:39:56:
               96:c3:53:e6:65:db:f7:91:b1:cb:36:e7:4b:cd:cd:
               bb:6b:36:9e:92:c9:5e:cc:09:de:f6:ca:43:66:14:
               21:b1:f9:37:56:22:6a:4f:3c:c5:08:5a:ab:81:19:
               88:a3:ee:87:9c:c6:1c:d5:42:71:35:33:cd:f4:ed:
               59:81:c6:eb:f3:02:da:43:e0:ce:f9:a5:6a:ca:d4:
               39:81:b3:17:68:4b:9a:a4:e0:41:55:c7:46:5d:38:
               05:f7:cc:7b:0b:80:b8:63:f4:91:81:d8:80:7c:00:
               11:e0:55:19:07:23:4a:5d:08:8e:8d:fc:c6:05:59:
               12:d1:7a:de:50:c4:d3:41:5f:b2:73:33:8b:2d:b7:
               80:a3:f4:66:b1:80:d1:22:01:71:b7:5d:75:a7:df:
               ae:e8:bd:22:32:30:71:54:56:ae:a6:b3:38:be:29:
               bb:af:be:01:65:fb:d4:66:84:b0:f0:fb:4b:58:c2:
               0e:3e:ee:9c:01:05:2e:02:7a:e1:42:71:c2:66:80:
               f7:27
            Показатель: 65537 (0x10001)
      Атрибуты:
         (никто)
         Запрошенные расширения:
   Алгоритм подписи: sha256WithRSAEncryption
   Значение подписи:
      84: дб: c8: 7c: 62: f3: 54: 85: c4: df: b9:c5:f5:2d:7a:c9:01:b1:
      2b:2b:69:a4:d6:ff:e8:8c:ef:39:dd:27:52:de:ba:58:67:5e:
      9a:37:c2:5c:2e:1c:58:7e:5b:f6:5d:cf:c5:f7:39:17:20:5f:
      82:bb:a5:52:bb:23:b9:b4:1a:c5:99:8d:1e:68:c9:1c:7e:a1:
      e1:39:9b:5e:b6:d4:22:17:38:fe:c8:8e:a5:82:da:ab:c9:ae:
      63:e6:42:5a:e0:09:50:a5:86:5a:8b:82:0c:0b:df:40:54:0d:
      9f:ec:b5:71:79:08:84:04:85:fc:6c:7b:63:38:37:b0:6d:20:
      10:2b:51:8a:dd:36:e6:92:c0:b6:9c:2e:86:c9:5a:55:3c:52:
      26:2b:8c:3d:80:35:fa:2a:40:c0:9e:d3:f2:e5:0e:78:e8:ea:
      d2:6f:ef:00:77:45:e5:1b:cc:df:da:52:b2:14:c9:23:09:f0:
      9b:5e:f5:9d:7d:df:e6:82:d1:b7:3a:a4:34:b5:df:bb:d6:fa:
      fe:85:47:6e:63:51:c3:d2:9d:11:43:16:2c:3e:df:44:0b:a7:
      08:1a:58:d5:f3:3d:49:a0:52:b7:6f:85:06:5d:da:3f:10:db:
      33:4f:71:38:6d:f6:e2:0e:ad:e1:74:35:27:09:a5:90:92:18:
      fc:96:30:54 

Как видите, в нем перечислены важные данные, которые вы предоставили, когда отвечали на вопросы, связанные с CSR. Проверьте значения и, если что-то не так, просто заново сгенерируйте CSR, прежде чем передавать его в ЦС.

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

 openssl x509 -in passwork.csr -out passwork.crt -req -signkey passwork.key -days 30 

Команда «X509» — это наша многоцелевая утилита сертификатов. ;

- в passwork.csr представляет наш CSR;

-out passwork.crt — это имя и расширение файла нашего сертификата;

-req signkey passwork.key — здесь мы указываем пару ключей, которую мы хотим использовать для подписи нашего сертификата;

-days 30 — это интервал времени истечения срока действия нашего сертификата.

Файл сертификата passwork.crt сгенерирован, так что он готов к работе! Довольно легко, правда? Что ж, становится намного проще, когда мы помним, что можем сгенерировать самозаверяющий сертификат, просто введя:

 openssl req \
-newkey rsa:2048 -nodes -keyout passwork.