2012-08-16 122 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

相關問題