2012-08-16 67 views
18

我正在C++中构建一个需要接受包含ECDSA公钥的证书的服务器应用程序。它必须验证证书,并在验证后使用证书中包含的公钥来验证与证书一起发送的消息。我所有这些工作都使用ECSDA生成的密钥对 - 即我的代码运行良好 - 但现在我需要执行证书部分。我想我可以使用OpenSSL的命令行来创建安装在客户端上的证书(与单独文件中的ECDSA私钥一起)。如何使用OpenSSL命令行创建ECDSA证书

任何人都可以帮忙吗?

非常感谢。

回答

28

如果你没有选择的曲线,你可以用这个命令列出它们:

openssl ecparam -list_curves 

我拿起sect571r1的这个例子。如果您还没有EC密钥,请使用它生成一个EC私钥:

openssl ecparam -out ec_key.pem -name sect571r1 -genkey 

然后生成证书。您的证书将在cert.pem

openssl req -new -key ec_key.pem -x509 -nodes -days 365 -out cert.pem 

参见:reqecparam

+2

'secp256k1'大概是目前最互操作。 – jww 2014-07-17 01:09:25

+8

我想你的意思是'secp256r1'。根据[这篇文章](http://openssl.6102.n7.nabble.com/P-256-curve-not-supported-in-openssl-1-0-1-tp5379p5380.html),它被称为'OpenSSL中的prime256v1'。 – oliverdm 2014-10-29 11:27:49

相关问题