A.2. 配置您的环境以使用 BouncyCastle 提供者
您可以将 JBoss EAP 安装配置为使用 BouncyCastle 提供程序。红帽不提供 Bouncy Castle JAR,且必须直接从 Bouncy Castle 获取。
当指定 BouncyCastle 供应商时,必须使用 Java 8,因为 BouncyCastle API 仅认证至 Java 8。
-
在 JDK 的类路径中包含 BouncyCastle JAR,以 with
bc开始。对于 Java 8,这可以通过将 JAR 文件放在-fips和 bctls-fips$JAVA_HOME/lib/ext中来实现。 使用以下任一方法,将
BouncyCastle供应商包含在 Java 安全配置文件中:-
您的 JDK 中提供了默认配置文件
java.security,可以更新为包含BouncyCastle提供程序。如果未指定其他安全配置文件,则将使用此文件。有关此文件的位置,请参阅 JDK 厂商的文档。 定义自定义 Java 安全配置文件,并通过添加
-Djava.security.properties==/path/to/java.security.properties 系统属性来引用该文件。使用两个等同表示引用时,会覆盖默认策略,并且仅使用参考文件中定义的提供程序。当使用一个等同符号时,如在
-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的值,以确保此提供程序具有优先级。每个提供程序都必须具有唯一的优先级。-
您的 JDK 中提供了默认配置文件
将
elytron子系统配置为专门用于BouncyCastle提供程序。默认情况下,系统配置为同时使用elytron和openssl提供程序。由于它还包含 TLS 实施,因此建议禁用 OpenSSL 提供程序,以确保使用来自 Bouncy Castle 的 TLS 实施。/subsystem=elytron:write-attribute(name=final-providers,value=elytron)重新加载服务器以使更改生效。
reload