1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

opensslでECDSAの鍵を生成する

Last updated at Posted at 2022-04-14

仕事で電子署名をやることがあり、学んだことをまとめたかったので記事を作りました。
OpenSSLのバージョンは 1.0.2a と古めです。。。

基本のコマンド

openssl ecparam -genkey -name prime256v1 -out keypair.pem

-genkeyが鍵生成のオプションです。
-outは出力ファイル名です。
-nameでは楕円曲線の種類を指定します。使える楕円曲線の種類は以下のコマンドで調べることができます。

openssl ecparam -list_curves

鍵ファイルの形式(PEMとDER)

「基本コマンド」では、署名(秘密)鍵と、検証(公開)鍵のペアをPEM形式で生成します。

PEM形式とは

任意の証明書、鍵をbase64でエンコードして以下のようにBEGIN/END行で挟んでつなげたテキストファイルです。

-----BEGIN EC PRIVATE KEY-----
鍵ファイルのbase64エンコード
-----END EC PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
証明書ファイルのbase64エンコード
-----END CERTIFICATE-----

base64エンコードとはバイナリを6bitずつに区切り、6bitデータを英数字や一部の記号に置き換えた形式になります。
以下のページにわかりやすくまとまっていました。

オプションを使うとこの鍵をPEM形式でなく、DER形式で出力することもできます。

DER形式とは

バイナリデータで、ASN.1というデータ構造によって記述されています。 ASN.1についてはこちら、

DER形式の鍵を生成するときは、-outform DER をコマンドに追加します。

openssl ecparam -genkey -name prime256v1 -outform DER -out keypair.der

DER形式ですと、秘密鍵、公開鍵にわけるコマンドがなぜかうまくいかないので、
基本はPEM形式の鍵を生成して、必要になったら、DERに変換するのがよさそうです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?