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

前提条件

  • Java Runtime Environment (JRE) によって提供される keytool ユーティリティーが必要です。このファイルのパスを見つけます。Red Hat Enterprise Linux では /usr/bin/keytool になります。

警告

JCEKS キーストアの実装は Java のベンダーによって異なるため、使用する JDK と同じベンダーの keytool ユーティリティーを使用してキーストアを生成する必要があります。
あるベンダーの JDK の keytool によって生成されたキーストアを別のベンダーの JDK で実行されている JBoss EAP インスタンスで使用すると、以下の例外が発生します。
java.io.IOException: com.sun.crypto.provider.SealedObjectForKeyProtector

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

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

    キーストアと他の重要な情報を保存するディレクトリーを作成します。この残りの手順では、ディレクトリーが EAP_HOME/vault/ であることを前提とします。このディレクトリーには機密情報が含まれるため、限られたユーザーのみがアクセスできるようにする必要があります。JBoss EAP が実行されるユーザーアカウントでは、最低でも読み書きアクセスが必要です。
  2. keytool ユーティリティーで使用するパラメーターを決定します。

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

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

例11.36 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 にキーストアが作成されます。このキーストアにはエイリアスが vault であるキーが 1 つ保存され、パスワードなどの JBoss EAP の暗号化された文字列を保存するために使用されます。