2012-08-16 11 views
18

私はC++でECDSA公開鍵を含む証明書を受け入れる必要があるサーバーアプリケーションを構築しています。証明書を検証し、検証時に証明書に含まれる公開鍵を使用して、証明書とともに送信されたメッセージを認証する必要があります。私はインフルエンザで生成されたECSDAキーペアを使用してすべての作業を行っています。つまり、コードがうまく機能していますが、今は証明書を作成する必要があります。そして私は、OpenSSLのコマンドラインを使ってクライアントにインストールされた証明書を作成することができたと考えました(ECDSA秘密鍵は別のファイルにあります)。OpenSSLコマンドラインでECDSA証明書を作成するには

誰でも手助けできますか?

ありがとうございました。

答えて

28

あなたがカーブを選択していない場合は、このコマンドでそれらを一覧表示することができます。

openssl ecparam -list_curves 

私は、この例ではsect571r1を選びました。すでに秘密鍵を持っていない場合は、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

+8

私はあなたが 'secp256r1'を意味すると思います。 [this post](http://openssl.6102.n7.nabble.com/P-256-curve-not-supported-in-openssl-1-0-1-tp5379p5380.html)によれば、それはOpenSSLの 'prime256v1'です。 – oliverdm

関連する問題