15.2. 暗号化キーと証明書の生成
15.2.1. keytool を使用した自己署名証明書の生成
15.2.1.1. キーペアの生成
JDK の一部である keytool コマンドを使用して、新しいキーペアを生成します。Keytool は既存のキーストアに新しいキーペアを追加、またはキーペアと同時に新しいキーストアを作成することができます。
このキーペアを使用して、サーバーとリモートクライアント間の SSL 暗号化を交渉します。次の手順ではキーペアを生成し、それを
localhost.keystore
と呼ばれるキーストアに保存します。サーバー上でこのキーストアを EJB3 invoker に使用可能にする必要がでてきます。この例のキーペアはエイリアス「ejb-ssl」のもとのキーストアに保存されます。RMI のセキュアなリモートコネクタの作成 で EJB3 Remoting コネクタを設定するときには、このキーエイリアスとキーペアのパスワード (あれば) が必要となります。
手順15.1 新しいキーペアの生成、および JBoss server conf ディレクトリのキーストア「localhost.keystore」へのその追加
これは SSL 暗号化に対して新しいキーペアを生成する手順を示しています。
- 次のコマンドで SSL 暗号化で使用するキーペアを作成します。
keytool -genkey -alias ejb-ssl -keystore localhost.keystore -storepass KEYSTORE_PASSWORD -keypass EJB-SSL_KEYPAIR_PASSWORD -dname "CN=SERVER_NAME,OU=QE,O=example.com,L=Brno,C=CZ"
結果キーペアがエイリアス
ejb-ssl
のキーストアlocalhost.keystore
に追加されます。このコマンドのパラメータはkeytool
パラメータ で説明します。
keytool
パラメータ
- alias
- キーストア内のキーペアを特定するために使用される英数字のトークンです。キーストアは複数のキーを含むことができます。エイリアスはキーストアのキーペアを一意的に特定する方法を提供します。キーペアのエイリアスはキーストア内では一意である必要があります。
- keystore
- キーペアを保存するために使用されるキーストアです。これは相対または絶対ファイルパスになります。
- storepass
- キーストアのパスワードです。キーストアがすでに存在している場合は、これはキーストアの既存パスワードでなければなりません。指定されたキーストアが存在していない場合は、作成され、このパスワードが新しいパスワードとなります。このパスワードが必要となるのは、キーと証明書を取得または保存するためにキーストアにアクセスするためです。
- keypass
- 新しいキーペアのパスワードです。このパスワードは今後キーペアを使用するために必要です。
- dname
- 証明書を識別する詳細です。
- CN
- サーバー名である共通名です。これはサーバー名と一致する必要があり、JNDI ルックアップでクライアントに返されます。クライアントが JNDI からの 1 つの名前を使用してサーバーに SSL 接続を試行し、別の名前の証明書を受け取る場合、接続は失敗します。
- OU
- 組織単位を意味します。サーバーの役割を持つ組織単位の名前です。
- O
- 組織を意味します。組織の名前で、URL と表現されることがあります。
- L
- 場所を意味します。サーバーの場所です。
- C
- 国を意味します。2 文字の国のコードです。
注記
最適なセキュリティの実践を図るために、JBoss Application Server プロセスの所有者のみが読み取り可能なセキュアなファイルシステムにキーストアファイルを保存します。
コマンドラインで指定されたキーストアがない場合は、
keytool
はキーペアを現在のユーザーのホームディレクトリの keystore
と呼ばれる新しいキーストアに追加します。このキーストアファイルは隠しファイルです。
15.2.1.2. 自己署名証明書のエクスポート
キーペアがサーバーが使用するために生成された時点で、証明書は作成されなければなりません。手順15.2「証明書のエクスポート」 では、
localhost.keystore
と呼ばれるキーストアから ejb-ssl
キーをエクスポートするステップを説明します。
手順15.2 証明書のエクスポート
これはキーストアからファイルに証明書をエクスポートする手順です。
- 次のコマンドを発行します。
keytool -export -alias ejb-ssl -file mycert.cer -keystore localhost.keystore
- キーストアパスワードを入力します。結果
証明書はファイル
mycert.cer
にエクスポートされます。