如何将密码添加到由openssl生成的ECC私钥中?

时间:2019-04-07 05:25:38

标签: openssl elliptic-curve

我正在尝试使用OpenSSL命令行界面创建基于椭圆曲线的证书。我通过在CLI中键入以下命令来生成密钥文件:

openssl ecparam -name secp256k1 -genkey -noout -out rootpem.pem

问题是,尽管ECC密钥已成功生成,但未使用任何对称密码术对其进行加密。但是,使用以下命令对RSA密钥进行加密非常简单:

openssl genrsa -aes128 -out 1.key 2048 

反正像RSA密钥一样,是否可以加密ECC密钥?

我尝试了“ OpenSSL 0.9.8zh 2016年1月14日”和“ OpenSSL 1.1.0g 2017年11月2日”具有多个参数组合的OpenSSL版本,但是我总是会出错。

3 个答案:

答案 0 :(得分:2)

建议使用genpkey命令。它还可以在Ed25519曲线上生成私钥,并在一个命令中使用AES-256对其进行加密:

openssl genpkey -algorithm ed25519 -aes256 -pass stdin -out private/ca.key

答案 1 :(得分:0)

据我所试,还没有一个单一的解决方案。可以通过将openssl ecparam传递到openssl ec命令来生成。一种可能的解决方案是:

openssl ecparam -genkey -name secp384r1 | openssl ec -aes-256-cbc -out rootpem.[pem/key]

查看生成的文件,它们具有与the OpenSSL wiki examples相似的标题。但是,我不确定此管道是否安全,因为未加密的密钥是裸管道传输的。

答案 2 :(得分:0)

或者您可以分两个步骤进行操作:首先是“ ecparam”,然后是密钥

openssl ecparam -name secp256k1 -out ecparam.pem
openssl genpkey -paramfile ecparam.pem -out key.pem -aes-128-cbc -pass pass:HereIsThePassword
相关问题