この記事は最終更新日から1年以上が経過しています。
@programming
投稿日 2020/9/7
更新日 2020/9/7 ✏
opensslで秘密鍵と公開鍵の生成・署名・検証
目次:
秘密鍵の生成
鍵長 2024 bitで秘密鍵 rsa.priv を生成:
$ openssl genrsa 2024 > ./rsa.priv
AES256暗号化された秘密鍵を生成する場合は-aes256
オプションを指定:
$ openssl genrsa -aes256 2024 > ./rsa.priv
秘密鍵から公開鍵の生成
先ほど生成した秘密鍵から公開鍵 rsa.pub を生成:
$ openssl rsa -in ./rsa.priv -pubout > ./rsa.pub
秘密鍵でファイルの署名を生成
先ほどの秘密鍵を使い、ファイルfoo.txtの署名を生成: (署名ファイル名foo.sig, base64形式)
$ openssl dgst -sha256 -sign ./rsa.priv ./foo.txt | openssl base64 > ./foo.sig
公開鍵でファイルの署名を検証
公開鍵 rsa.pub とファイル foo.txt から先ほどの署名を検証:
## 署名ファイルfoo.sigを一旦sha256ハッシュ化:
$ openssl base64 -d -in ./foo.sig > ./foo.sha256
## 公開鍵とfoo.txtファイルでsha256ハッシュ化された署名を検証:
$ openssl dgst -sha256 -verify ./rsa.pub -signature ./foo.sha256 ./foo.txt
Verified OK ## 検証OK!