Openssl ECDSA:私钥密码

时间:2016-05-01 16:18:04

标签: security encryption openssl ecdsa

我是Openssl的新手我已经生成了一个私钥myprivatekey.pem和一个publickey mypublickey.pem:

openssl -ec  -in myprivatekey.pem -pubout -out mypublickey.pem

和我的公钥:

{{1}}

我接下来要做的是使用密码私钥加密我的ecdsa并为我的公钥发出认证请求,并感谢您的帮助。

2 个答案:

答案 0 :(得分:9)

ecparam似乎没有内置选项来加密生成的密钥。相反,您可以简单地执行以下操作:

openssl ec -in myprivatekey.pem -out myprivatekey_encrypted.pem -aes256

genrsa相比,需要额外的步骤,但这基本上做同样的事情。

现在,就证书请求而言,无论使用何种私钥,命令都几乎相同:

openssl req -new -sha256 -key myprivatekey.pem -out mycertrequest.pem

然后,您可以获取生成的mycertrequest.pem并将其发送给CA进行签名。

修改

如果您担心将未加密的私钥写入磁盘,您可以像这样一步完成密钥的生成和加密:

openssl ecparam -genkey -name secp256k1 | openssl ec -aes256 -out privatekey.pem

这将生成一个P-256密钥,然后提示您输入密码。然后使用AES256对密钥进行加密并保存到privatekey.pem

答案 1 :(得分:1)

虽然ecparam没有用于加密生成的密钥的选项,但是genpkey可以生成ECC私钥,并且具有这样的选项:

openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:secp160k1 -aes-256-cbc -out myprivatekey_encrypted.pem

-aes-256-cbc选项指定对其进行加密(使用aes-256-cbc;其他选项可用于不同类型的加密)。

您可以通过-passin pass:password-passin file:mypassword.pass在命令行上指定密码。