我有以下命令让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
答案 0 :(得分:15)
'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作为加密。
因此,在许多企业设置中,可以分两步完成,以便对所应用的密钥加密进行充分控制。
答案 1 :(得分:1)
从输出中可以看出,您选择了错误的算法。
你不应该通过-aes128
代替-aes-128-cbc
吗?
从手册中我假设-aes-128-cbc
是openssl enc
的正确参数,但我不知道它是否适用于genrsa
。