openssl
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン | |||
| openssl [2023/08/09 06:01] – [楕円曲線] nullpon | openssl [2024/07/15 10:20] (現在) – nullpon | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ====== | + | < |
| + | # OpenSSL | ||
| - | ===== TLS ===== | + | ## 鍵ペアを作成 |
| - | 使用可能な暗号スイートを表示 | + | TLSのサーバ鍵やデジタル署名鍵として使用できる鍵ペアを作成する |
| - | <code sh> | + | ``` |
| - | # 全て | + | |
| - | openssl ciphers -v | + | |
| - | + | ||
| - | # TLS 1.3で使用可能な暗号スイートを表示 | + | |
| - | openssl ciphers -v TLSv1.3 | + | |
| - | + | ||
| - | # 暗号スイートを指定して表示(これはnginx 1.17のデフォルトの暗号スイート指定) | + | |
| - | openssl ciphers -v ' | + | |
| - | </ | + | |
| - | + | ||
| - | TLS鍵の作成 | + | |
| - | + | ||
| - | < | + | |
| # rsa 2048bit 鍵を作る | # rsa 2048bit 鍵を作る | ||
| openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits: | openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits: | ||
| 行 30: | 行 18: | ||
| # 別の作り方 | # 別の作り方 | ||
| openssl ecparam -genkey -name prime256v1 -out server_key.pem | openssl ecparam -genkey -name prime256v1 -out server_key.pem | ||
| - | </ | + | ``` |
| - | '' | + | `-aes256`等のパラメータを追加すると鍵を暗号化できる |
| - | 鍵を確認するには | ||
| - | < | + | ### 鍵の確認 |
| - | ## rsa鍵の場合 | + | |
| - | openssl rsa -in server_key.pem -noout -text | + | |
| - | ## ecdsa鍵の場合 | + | ``` |
| - | openssl | + | openssl |
| - | </ | + | ``` |
| - | CSRの作成 | + | ## TLS |
| - | < | + | ### 使用可能な暗号スイートを表示 |
| + | |||
| + | ``` | ||
| + | # 全て | ||
| + | openssl ciphers -v | ||
| + | |||
| + | # TLS 1.3で使用可能な暗号スイートを表示 | ||
| + | openssl ciphers -v TLSv1.3 | ||
| + | |||
| + | # 暗号スイートを指定して表示(これはnginx 1.17のデフォルトの暗号スイート指定) | ||
| + | openssl ciphers -v ' | ||
| + | ``` | ||
| + | |||
| + | ### CSRの作成 | ||
| + | |||
| + | 作成 | ||
| + | |||
| + | ``` | ||
| openssl req -new -key server_key.pem -out server_csr.pem | openssl req -new -key server_key.pem -out server_csr.pem | ||
| - | </ | + | ``` |
| - | ===== 署名と検証 ===== | + | |
| - | ECDSA鍵を使って署名の作成と検証する | + | 確認 |
| - | 使用可能な楕円曲線一覧 | + | ``` |
| + | openssl req -in server_csr.pem -noout -text | ||
| + | ``` | ||
| - | openssl ecparam -list_curves | + | ## 署名と検証 |
| + | ECDSA鍵を使って署名の作成と検証する例 | ||
| + | |||
| + | ### 使用可能な楕円曲線一覧 | ||
| + | |||
| + | ``` | ||
| + | openssl ecparam -list_curves | ||
| + | ``` | ||
| 秘密鍵と公開鍵を作成(ここではP-256曲線=prime256v1を使う) | 秘密鍵と公開鍵を作成(ここではP-256曲線=prime256v1を使う) | ||
| - | | + | ``` |
| + | openssl ecparam -name prime256v1 -genkey -out ec.key | ||
| + | ``` | ||
| 公開鍵をとりだす | 公開鍵をとりだす | ||
| - | | + | ``` |
| + | openssl ec -pubout -in ec.key -out ec.pub | ||
| + | ``` | ||
| hoge.txtファイルの署名を作成(対象のファイルは一番後ろに書く) | hoge.txtファイルの署名を作成(対象のファイルは一番後ろに書く) | ||
| - | | + | ``` |
| + | openssl dgst -sign ec.key -sha256 -out hoge.txt.sig hoge.txt | ||
| + | ``` | ||
| hoge.txtの署名を検証(検証対象のファイルは一番後ろに書く) | hoge.txtの署名を検証(検証対象のファイルは一番後ろに書く) | ||
| - | | + | ``` |
| + | openssl dgst -verify ec.pub -sha256 -signature hoge.txt.sig hoge.txt | ||
| + | ``` | ||
| Verified OKと出力されればOK | Verified OKと出力されればOK | ||
| 行 79: | 行 97: | ||
| ↑で生成した鍵を使って署名・検証するRubyのサンプルコード | ↑で生成した鍵を使って署名・検証するRubyのサンプルコード | ||
| - | < | + | ```ruby |
| require ' | require ' | ||
| 行 90: | 行 108: | ||
| puts pub_key.verify(' | puts pub_key.verify(' | ||
| puts pub_key.verify(' | puts pub_key.verify(' | ||
| - | </code> | + | ``` |
| + | |||
| + | </markdown> | ||
| ===== 楕円曲線 ===== | ===== 楕円曲線 ===== | ||
openssl.1691560873.txt.gz · 最終更新: by nullpon