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

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

openssl genrsa –aes-128-cbc –out priv.pem –passout pass:[privateKeyPass] 2048

и

openssl req –x509 –new –key priv.pem –passin pass:[privateKeyPass] -days 3650 –out cert.cer

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

usage: genrsa [args] [numbits]
 -des            encrypt the generated key with DES in cbc mode
 -des3           encrypt the generated key with DES in ede cbc mode (168 bit key)
 -seed
                 encrypt PEM output with cbc seed
 -aes128, -aes192, -aes256
                 encrypt PEM output with cbc aes
 -camellia128, -camellia192, -camellia256
                 encrypt PEM output with cbc camellia
 -out file       output the key to 'file
 -passout arg    output file pass phrase source
 -f4             use F4 (0x10001) for the E value
 -3              use 3 for the E value
 -engine e       use engine e, possibly a hardware device.
 -rand file:file:...
                 load the file (or the files in the directory) into
                 the random number generator

что я делаю не так?

изменить: я решил первую команду:

openssl genrsa -aes128 -out privkey.pem 2048

теперь я получаю ошибку с второй:

unknown option –x509

2 ответов


'genrsa' генерирует только ключ RSA.

' req ' затем использует этот ключ, чтобы сделать запрос стиля x509.

Если вам просто нужна пара ключей rsa-используйте genrsa.

Если вам нужна пара клавиш и подписанный запрос x509, вы используете "genrsa", а затем "req".

необязательно " req "также может генерировать этот ключ для вас (т. е. он инкапсулирует команду "genrsa" (и gendh).

Так:

 openssl genrsa -aes128 -out privkey.pem 2048
 openssl req -new -x509 -key privkey.pem 

почти эквивалентно к

 openssl req -new -x509 -keyout privkey.pem  -newkey rsa:2048

за исключением того, что в отличие от "genrsa", " req " не позволяет указать AES128 в качестве шифрования.

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


как я вижу из вывода, вы выбираете неправильный алгоритм. Разве вы не должны пройти -aes128 вместо -aes-128-cbc?

из руководства я предполагаю, что -aes-128-cbc является правильным параметром для openssl enc, но я не знаю, должен ли он работать для genrsa.