我正在尝试使用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版本,但是我总是会出错。
答案 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