Как : Создать CSR в OpenSSL без Вопросов (Неинтерактивно)

В это статье, Вы найдете информацию о том, как сгенерировать CSR (Запрос на Подписание Сертификата) с помощью OpenSSL из командной строки в Linux, автоматически отвечая на вопросы о теме сертификата.

Ниже Вы найдете два примера создания CSR с помощью OpenSSL.

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

А во втором примере Вы увидите как сгенерировать CSR из существующего ключа (если у Вас уже есть секретный ключ и Вы ходите продолжить использовать его).

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

Таким образом Вы можете использовать эти примеры в shell скриптах, для автоматизации генерации CSR.

Создание CSR и Ключа в OpenSSL Без Вопросов

Используйте следующую команду для генерации нового 2048-битного секретного ключа example.key и создания CSR example.csr на его основании :

$ openssl req -nodes -newkey rsa:2048 -keyout example.key -out example.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=example.com"
Опция Описание
openssl req утилита генерации CSR
-nodes секретный ключ не шифруется
-newkey создание CSR и нового секретного ключа
rsa:2048 генерация 2048-битного RSA ключа
-keyout файл в который будет записан новый секретный ключ
-out файл в который будет записан CSR
-subj устанавливает тему сертификата

Генерация CSR из Существующего Ключа в OpenSSL

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

$ openssl req -new -key example.key -out example.csr -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=example.com"
Опция Описание
openssl req утилита генерации CSR
-new создание нового CSR
-key указывает из какого файла брать секретный ключ
-out файл в который будет записан CSR
-subj устанавливает тему сертификата

Автоматическая Неинтерактивная Генерация CSR

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

-subj arg Указывает значение полей темы сертификата. Аргументы (arg) должны передаваться в формате /тип0=значение0/тип1=значение1/тип2=..., символы могут экранироваться \ (обратным слэшем), пробелы не пропускаются.

Ниже приведены поля, которые необходимо заполнить для создания CSR :

Поле Значение Пример
/C= Country (Страна) GB
/ST= State (Область) London
/L= Location (Город) London
/O= Organization (Организация) Global Security
/OU= Organizational Unit (Отдел организации) IT Department
/CN= Common Name (Доменное имя сайта) example.com

Вы создали Запрос на Подписание Сертификата, который представляет из себя закодированный файл.

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