A.2. BouncyCastle プロバイダーを使用するように環境を設定

JBoss EAP インストールは、BouncyCastle プロバイダーを使用するに設定できます。Bouncy Castle JAR は Red Hat によって提供されていないため、Bouncy Castle から直接取得する必要があります。

重要

BouncyCastle API が認定されているのは Java 8 までであるため、BouncyCastle プロバイダーが指定されているときは Java 8 を使用する必要があります。

  1. JDK のクラスパスに bc-fips および bc-fips で始まる BouncyCastle JAR の両方を含めます。Java 8 の場合、これは JAR ファイルを $JAVA_HOME/lib/ext に配置して実現できます。
  2. 以下の方法のいずれかを使用して、Java セキュリティー設定ファイルに BouncyCastle プロバイダーを追加します。

    • デフォルトの設定ファイル java.security は JDK で提供され、BouncyCastle プロバイダーを組み込むように更新できます。このファイルは、他のセキュリティー設定ファイルが指定されていない場合に使用されます。このファイルの場所は、JDK ベンダーのドキュメントを参照してください。
    • カスタムの Java セキュリティー設定ファイルを定義し、-Djava.security.properties==/path/to/java.security.properties を使用して参照します。

      2 つの等号を使用して参照されると、デフォルトのポリシーは上書きされます。また、参照されるファイルで定義されたプロバイダーのみが使用されます。-Djava.security.properties=/path/to/java.security.properties のように単一の等号が使用される場合、プロバイダーはデフォルトのセキュリティーファイルに追記されます。また、鍵が両方のファイルで指定されると、引数で渡されたファイルを使用することが優先されます。このオプションは、異なるセキュリティー設定を必要とする同じホストで複数の JVM を実行している場合に便利です。

    これらのプロバイダーを定義する設定ファイルの例を以下に示します。

    例: BouncyCastle セキュリティーポリシー

    # We can override the values in the JRE_HOME/lib/security/java.security
    # file here.  If both properties files specify values for the same key, the
    # value from the command-line properties file is selected, as it is the last
    # one loaded.  We can reorder and change security providers in this file.
    security.provider.1=org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider
    security.provider.2=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider fips:BCFIPS
    security.provider.3=sun.security.provider.Sun
    security.provider.4=com.sun.crypto.provider.SunJCE
    
    # This is a comma-separated list of algorithm and/or algorithm:provider
    # entries.
    #
    securerandom.strongAlgorithms=DEFAULT:BCFIPS

    重要

    デフォルトの設定ファイルが更新されると、このプロバイダーの指定優先度を確実にするために、このファイルの security.provider.X (security.provider.2) の X の値が、この行おきに増大する必要があります。各プロバイダーには固有の優先順位が必要です。

  3. Elytron サブシステムが BouncyCastle プロバイダーのみを使用するように設定します。デフォルトでは、システムは elytron プロバイダーおよび openssl プロバイダーの両方を使用するように設定されています。また、TLS 実装が含まれるため、OpenSSL プロバイダーを無効にして、Bouncy Castle からの TLS 実装を使用することが推奨されます。

    /subsystem=elytron:write-attribute(name=final-providers,value=elytron)
  4. 変更を反映するためにサーバーをリロードします。

    reload