Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

18.6.4. 機密性が高い文字列を格納する Java キーストアの作成

前提条件

  • Java Runtime Environment (JRE) によって提供される keytool ユーティリティー。このファイルへのパスを見つけます。Red Hat Enterprise Linux では、/usr/bin/keytool です。
警告
JCEKS キーストアの実装は Java のベンダーによって異なるため、使用する Java development kit と同じベンダーの keytool ユーティリティーを使用してキーストアを生成する必要があります。
別のベンダーの Java 開発キットで実行されている JBoss EAP インスタンスで、あるベンダーの Java 開発キットの keytool によって生成されたキーストアを使用すると、次の例外が発生します。
java.io.IOException: com.sun.crypto.provider.SealedObjectForKeyProtector

手順18.8 Java キーストアの設定

  1. キーストアと他の暗号化された情報を格納するディレクトリーを作成します。

    キーストアと他の重要な情報を格納するディレクトリーを作成します。この手順では、ディレクトリーは EAP_HOME/vault/ と想定します。このディレクトリーには機密情報が含まれるため、アクセスは、一部のユーザーに制限する必要があります。JBoss EAP を実行しているユーザーアカウントには少なくとも読み書き込みアクセスが必要です。
  2. keytool ユーティリティーで使用するパラメーターを決定します。

    以下のパラメーターの値を決めます。
    alias
    エイリアスは、vault やキーストアに保存されている他のデータの一意識別子です。エイリアスは大文字と小文字を区別しません。
    storetype
    ストアタイプはキーストアのタイプを指定します。値は、jceks が推奨されます。
    keyalg
    暗号化に使用するアルゴリズム。JRE とオペレーティングシステムのドキュメントを使用して、他にどの選択肢が利用できるかを確認してください。
    keysize
    暗号化キーのサイズは、ブルートフォースでの暗号解除の難易度に影響します。適切な値の詳細は、keytool ユーティリティーとともに配布されるドキュメントを参照してください。
    storepass
    storepass の値は、キーストアに対する認証に使用されるパスワードであるため、鍵を読み取ることができます。パスワードは 6 文字以上である必要があります。パスワードは、キーストアへのアクセス時に入力する必要があります。このパラメーターを省略すると、コマンドの実行時に入力を求められます。
    keypass
    keypass の値は、特定のキーにアクセスするために使用されるパスワードで、storepass パラメーターの値と一致する必要があります。
    validity
    validity の値は、鍵が有効になる期間 (日数) です。
    keystore
    keystore の値は、keystore の値が格納される予定のファイルパスおよびファイル名です。キーストアファイルは、データが最初に追加されると作成されます。
    正しいファイルパス区切り文字が使用されていることを確認します。Red Hat Enterprise Linux および同様のオペレーティングシステムの場合は / (フォワードスラッシュ)、Microsoft Windows Server の場合は \ (バックスラッシュ) を使用します。
    Keytool ユーティリティーには、その他の多くのオプションがあります。詳細は、JRE またはオペレーティングシステムのドキュメントを参照してください。
  3. keytool コマンドを実行します。

    オペレーティングシステムのコマンドラインインターフェイスを開き、収集した情報を使用して keytool ユーティリティーを実行します。

例18.40 Java キーストアの作成

$ keytool -genseckey -alias vault -storetype jceks -keyalg AES -keysize 128 -storepass vault22 -keypass vault22 -validity 730 -keystore EAP_HOME/vault/vault.keystore

結果

この場合、キーストアはファイルは EAP_HOME/vault/vault.keystore に作成されています。JBoss EAP では、パスワードなどの暗号化された文字列を保存するために使用されるエイリアス vault とともに単一のキーを保存します。