ユーザ用ツール

サイト用ツール


openssl

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
openssl [2021/07/17 07:37] – [TLS] nullponopenssl [2024/07/15 10:20] (現在) nullpon
行 1: 行 1:
-====== OpenSSL ======+<markdown> 
 +OpenSSL
  
-===== TLS =====+## 鍵ペアを作成
  
-使用可能な暗号スイート表示+TLSのサーバ鍵やデジタル署名鍵として使用できる鍵ペア作成する
  
-<code sh> +```
-# 全て +
-openssl ciphers -v +
- +
-# TLS 1.3で使用可能な暗号スイートを表示 +
-openssl ciphers -v TLSv1.3 +
- +
-# 暗号スイートを指定して表示(これはnginx 1.17のデフォルトの暗号スイート指定) +
-openssl ciphers -v 'HIGH:!aNULL:!MD5' +
-</code> +
- +
-TLS鍵の作成 +
- +
-<code>+
 # rsa 2048bit 鍵を作る # rsa 2048bit 鍵を作る
 openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out server_key.pem openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out server_key.pem
行 30: 行 18:
 # 別の作り方 # 別の作り方
 openssl ecparam -genkey -name prime256v1 -out server_key.pem  openssl ecparam -genkey -name prime256v1 -out server_key.pem 
-</code>+```
  
-''-aes256''などのパラメータを追加すると鍵を暗号化できる+`-aes256`等のパラメータを追加すると鍵を暗号化できる
  
-鍵を確認するには 
  
-<code> +##鍵の確認
-## rsa鍵の場合 +
-openssl rsa -in server_key.pem -noout -text+
  
-## ecdsa鍵の場合 +``` 
-openssl ec -in server_key.pem -noout -text +openssl pkey -in server_key.pem -noout -text 
-</code>+```
  
  
-CSRの作成+## TLS
  
-<code> +### 使用可能な暗号スイートを表示
-openssl req -new -in server_key.pem -out server_csr.pem +
-</code> +
-===== 署名と検証 =====+
  
-ECDSA鍵を使っ署名の作成と検証する+``` 
 +# 全 
 +openssl ciphers -v
  
-使用可能な楕円曲線一覧+# TLS 1.3で使用可能な暗号スイートを表示 
 +openssl ciphers -v TLSv1.3 
 + 
 +# 暗号スイートを指定して表示(これはnginx 1.17のデフォルトの暗号スイート指定) 
 +openssl ciphers -v 'HIGH:!aNULL:!MD5' 
 +``` 
 + 
 +### CSRの作成 
 + 
 +作成 
 + 
 +``` 
 +openssl req -new -key server_key.pem -out server_csr.pem 
 +``` 
 + 
 +確認 
 + 
 +``` 
 +openssl req -in server_csr.pem -noout -text 
 +``` 
 + 
 +## 署名と検証 
 + 
 +ECDSA鍵を使って署名の作成と検証する例
  
-  openssl ecparam -list_curves+### 使用可能な楕円曲線一覧
  
 +```
 +openssl ecparam -list_curves
 +```
  
 秘密鍵と公開鍵を作成(ここではP-256曲線=prime256v1を使う) 秘密鍵と公開鍵を作成(ここではP-256曲線=prime256v1を使う)
  
-  openssl ecparam -name prime256v1 -genkey -out ec.key+``` 
 +openssl ecparam -name prime256v1 -genkey -out ec.key 
 +```
  
 公開鍵をとりだす 公開鍵をとりだす
  
-  openssl ec -pubout -in ec.key -out ec.pub+``` 
 +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+``` 
 +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+``` 
 +openssl dgst -verify ec.pub -sha256 -signature hoge.txt.sig hoge.txt 
 +```
  
 Verified OKと出力されればOK Verified OKと出力されればOK
行 79: 行 97:
 ↑で生成した鍵を使って署名・検証するRubyのサンプルコード ↑で生成した鍵を使って署名・検証するRubyのサンプルコード
  
-<code ruby>+```ruby
 require 'openssl' require 'openssl'
  
行 90: 行 108:
 puts pub_key.verify('sha256', sig, 'hello world') # => true puts pub_key.verify('sha256', sig, 'hello world') # => true
 puts pub_key.verify('sha256', sig, 'hello work') # => false、データが改竄されている puts pub_key.verify('sha256', sig, 'hello work') # => false、データが改竄されている
-</code>+``` 
 + 
 +</markdown>
  
 ===== 楕円曲線 ===== ===== 楕円曲線 =====
  
-楕円曲線とは''y2 x3 + ax + b''で表される曲線。いわゆる楕円とは関係ない+楕円曲線とは''y^2 x^3 + ax + b''で表される曲線。いわゆる楕円とは関係ない
  
 電子署名でよく使われる楕円曲線は以下の3つ(nistはアメリカ国立標準技術研究所) 電子署名でよく使われる楕円曲線は以下の3つ(nistはアメリカ国立標準技術研究所)
  
 ^nist推奨^openssl^ ^nist推奨^openssl^
-|P-256|prime256v1|+|P-256|prime256v1 (secp256r1)|
 |P-384|secp384r1| |P-384|secp384r1|
 |P-521|secp521r1| |P-521|secp521r1|
openssl.1626507430.txt.gz · 最終更新: 2021/07/17 07:37 by nullpon