我有以下用于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
最佳答案
“ 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指定为加密。
因此,在许多企业设置中,需要分两个步骤进行操作,以便对所应用的密钥加密获得足够的控制。