320.1 OpenSSL
Contents
320.1 OpenSSL
重要度 4
説明 OpenSSLの構成および使用方法を知っていることが求められる。
これには、自分自身の認証局を作成し、さまざまなアプリケーションにSSL証明書を発行する知識も含まれる。
主要な知識範囲
- 証明書の生成
- 鍵の生成
- SSL/TLS クライアントとサーバのテスト
重要なファイル、用語、ユーティリティ
- openssl
- RSA, DH 及び DSA
- SSL
- X.509
- CSR
- CRL
openssl コマンド
OpenSSLコマンドは、証明書の作成のためのコマンドです。 opensslには、サブコマンドがあり、使用方法は、各サブコマンド毎に異なります。
【書式】
- openssl [サブコマンド] [オプション]
- openssl [オプション]
openssl サブコマンド
ca | CA(証明書)の証明書を管理 |
dgst | メッセージダイジェストを計算 |
genrsa | RSA秘密鍵を生成 |
req | X.509形式の証明書署名要求(CSR)を管理 |
rsa | RSA鍵を管理 |
x509 | X.509証明書データ管理 |
s_client | RSSL/TLSプロトコルを指定して指定サーバーに接続 |
s_server | SSL/TLSプロトコルを使用してデーターを受けるサーバーとして動作 |
※ x.509…電子証明書やCSL(証明書失効リスト)の標準仕様
openssl genrsa
RSA秘密鍵を生成
オプション
-out [ファイル名] | 生成したRSA形式の秘密鍵を出力するァイル名(filename)を指定。指定がない場合は標準出力に表示 |
-rand [ファイル名]/td> | 鍵をランダムデータの元となるファイルを指定 |
暗号化方法 | 利用する暗号化の方式(des、des3、idea)。指定がない場合はRSA形式で暗号化される |
-des | 暗号化にDESを仕様 |
-des3 | 暗号化にdes3を仕様 |
-idea | 暗号化にideaを仕様 |
ビット数 | 生成する秘密鍵のビット数 |
例
2048ビットのdes3での暗号形式のRSA形式の秘密鍵を作成する
$ openssl genrsa -rand rand.dat -out privkey.pem -des3 2048
パスフレーズ無し、2048 ビットの RSA 秘密鍵を生成する
# openssl genrsa out privkey.pem 2048
openssl req
X.509形式の証明書署名要求(CSR)を管理
オプション
-days [日数] | X.509の証明書の有効期限を指定 |
-in [ファイル名] | 入力する証明書要求のファイル名を指定。指定がない場合は標準入力で入力 |
-key [ファイル名] | パスフレーズ付き秘密鍵の場合は、パスフレーズを入力する |
-new | 新規に証明書要求ファイルを作成 |
-out [ファイル名] | 出力する証明書要求のファイル名を指定。指定がない場合は標準出力に表示 |
-text | 証明書要求をテキスト形式で表示 |
-x509 | X.509形式の証明書要求ファイルを作成する |
例
1年間有効のX.509形式の自己署名証明書(CSR)の作成
# openssl req -new -x509 -key myserver.key -out ca.crt -days 365
openssl x509
.509証明書データ管理
オプション
-in [ファイル名] | 入力する証明書のファイル名を指定。指定がない場合は標準出力に表示 |
-out [ファイル名] | 出力する証明書のファイル名を指定。指定がない場合は標準出力に表示 |
-inform [DER|PEM|NET] | 入力ファイルの書式 |
-outform [DER|PEM|NET] | 出力ファイルの書式 |
-days [日数] | X.509形式の証明書の有効期限を指定 |
-text | テキスト形式で表示する |
-noout | 出力ファイルに出力しない |
例
PEM形式⇒DER形式への変換
# openssl x509 -inform PEM -outform DER -in ca.crt -out ca.der
DER形式⇒PEM形式への変換
# openssl x509 -in ca.der -inform DER -out ca.crt -outform PEM
openssl s_client
SSL/TLSプロトコルを指定して指定サーバーに接続
オプション
-connect [ホスト名]:[ポート番号] | 指定したホスト名及びポート番号でSSLコネクションをテストする。ホスト名はIPアドレスでも可 |
例
SSL/TLSで、www.google.comにポート番号443で接続
# openssl s_client -connect www.google.com:443
openssl dgst
メッセージダイジェストを計算
書式
openssl dgst [-md5|-md4|-md2|-sha]
オプション
-md5 | -md4 | -md2 | -sha1 | ダイジェスト関数を選択する |
例
ファイルのmd5ダイジェストを作成します。
# openssl dgst -md5 file
ファイルprikey.pemに格納されている秘密鍵を使用して、ファイルのSHA1ダイジェストに署名します。
# openssl dgst -sha1 -sign prikey.pem -out file.sha1 file
openssl rsa
RSA 秘密鍵の内容を表示
例
RSA 秘密鍵の内容を表示
# openssl rsa -in private-key.pem -text Private-Key: (512 bit) modulus: 00:cf:d7:b2:2b:f2:3b:ea:47:58:0e:63:0e:40:a9:(略) publicExponent: 65537 (0x10001) privateExponent: 00:85:34:39:79:d7:30:a2:32:b2:40:7d:09:7b:38:(略) prime1: 00:f2:02:33:b2:24:ee:f6:01:1e:64:24:2f:dd:29:(略) prime2: 00:db:db:1b:36:51:2e:e3:88:49:93:cc:aa:85:4d:(略) exponent1: 00:86:e6:5a:78:8c:93:d2:f7:0d:1b:0e:fc:cb:27:(略) exponent2: 00:85:34:39:79:d7:30:a2:32:b2:40:7d:09:7b:38:(略) coefficient: 00:d9:42:f6:06:fb:3a:10:f7:0d:1b:0e:fc:cb:27:(略) writing RSA key (略) # 秘密鍵(private-key)を読み込ませ、-pubout で公開鍵を出力する $ openssl rsa -in private-key.pem -pubout -out public-key.pem
ディスカッション
コメント一覧
まだ、コメントがありません