14.7.2. 機密性が高い文字列を格納する Java キーストアの作成
要件
keytool
コマンドを使用出来る必要があります。これは Java Runtime Environment (JRE) により提供されます。このファイルのパスを見つけます。Red Hat Enterprise Linux では、これは/usr/bin/keytool
にインストールされます。
手順14.6 Java キーストアの設定
キーストアと他の暗号化された情報を格納するディレクトリーを作成します。
キーストアと他の重要な情報を保持するディレクトリーを作成します。この残りの手順では、ディレクトリーが/home/USER/vault/
であることを前提とします。keytool
で使用するパラメーターを決定します。以下のパラメーターを決定します。- alias
- エイリアスは資格情報コンテナまたはキーストアに格納された vault または他のデータの一意の ID です。この手順の最後にあるコマンド例のエイリアスは
vault
です。エイリアスは大文字と小文字を区別します。 - keyalg
- 暗号化に使用するアルゴリズム。デフォルト値は
DSA
です。この手順の例ではRSA
です。利用可能な他の選択肢については、JRE およびオペレーティングシステムのドキュメンテーションを参照してください。 - keysize
- 暗号化キーのサイズにより、ブルートフォース攻撃により復号化する困難さが影響を受けます。キーのデフォルトサイズは 1024 です。これは 512 〜 1024 の範囲にあり、64 の倍数である必要があります。この手順の例では
1024
を使用します。 - keystore
- 暗号化された情報と暗号化方法に関する情報を保持するデータベースのキーストア。キーストアを指定しない場合、使用するデフォルトのキーストアはホームディレクトリーの
.keystore
という名前のファイルです。これは、キーストアにデータを初めて追加したときに作成されます。この手順の例では、vault.keystore
キーストアを使用します。
keystore
コマンドには他の多くのオプションがあります。詳細については、JRE またはオペレーティングシステムのドキュメンテーションを参照してください。keystore
コマンドが尋ねる質問の回答を決定します。keystore
は、キーストアエントリーに値を入力するために次の情報を必要とします。- キーストアパスワード
- キーストアを作成する場合は、パスワードを設定する必要があります。将来キーストアを使用するために、パスワードを提供する必要があります。覚えやすい強度の高いパスワードを作成します。キーストアは、パスワードや、キーストアが存在するファイルシステムおよびオペレーティングシステムのセキュリティーと同程度にセキュアです。
- キーパスワード (任意設定)
- キーストアパスワードに加え、保持する各キーにパスワードを指定することが可能です。このようなキーを使用するには、使用するたびにパスワードを提供する必要があります。通常、このファシリティーは使用されません。
- 名前 (名) と 名字 (姓)
- この情報と一覧の他の情報は、一意にキーを識別して他のキーの階層に置くのに役立ちます。名前である必要はありませんが、キーに一意な 2 つの言葉である必要があります。この手順の例では、
Accounting Administrator
を使用します。これが証明書のコモンネームになります。 - 組織単位
- 証明書を使用する人物を特定する単一の言葉です。アプリケーションユニットやビジネスユニットである場合もあります。この手順の例では
AccountingServices
を使用します。通常、1 つのグループやアプリケーションによって使用されるキーストアはすべて同じ組織単位を使用します。 - 組織
- 通常、所属する組織名を表す単一の言葉になります。一般的に、1 つの組織で使用されるすべての証明書で同じになります。この例では
MyOrganization
を使用します。 - 市または自治体
- お住まいの市名。
- 州または県
- お住まいの州や県または同等の行政区画。
- 国
- 2 文字の国コード。
これらすべての情報によってキーストアや証明書の階層が作成され、一貫性のある一意な名前付け構造が確実に使用されるようにします。keytool
コマンドを実行し、収集した情報を提供します。例14.15
keystore
コマンドの入出力例$ keytool -genkey -alias vault -keyalg RSA -keysize 1024 -keystore /home/USER/vault/vault.keystore Enter keystore password: vault22 Re-enter new password:vault22 What is your first and last name? [Unknown]:
Accounting Administrator
What is the name of your organizational unit? [Unknown]:AccountingServices
What is the name of your organization? [Unknown]:MyOrganization
What is the name of your City or Locality? [Unknown]:Raleigh
What is the name of your State or Province? [Unknown]:NC
What is the two-letter country code for this unit? [Unknown]:US
Is CN=Accounting Administrator, OU=AccountingServices, O=MyOrganization, L=Raleigh, ST=NC, C=US correct? [no]:yes
Enter key password for <vault> (RETURN if same as keystore password):
結果
/home/USER/vault/
ディレクトリに vault.keystore
という名前のファイルが作成されます。JBoss Enterprise Application Platform のパスワードなど、暗号化された文字列を格納するため使用される vault
という 1 つのキーがこのファイルに保存されます。