A.2. 配置您的环境以使用 BouncyCastle 供应商
您可以将 JBoss EAP 安装配置为使用 BouncyCastle
供应商。红帽不提供 Bouncy Castle JARs,它必须直接从 Bouncy Castle 获取。
当指定 BouncyCastle
提供者时,必须使用 Java 8,因为 BouncyCastle API 只能被认证为 Java 8。
-
在您的 JDK 的 classpath 中包含 BouncyCastle JARs,以
bc-fips
和bctls-fips
开头。对于 Java 8,这通过将 JAR 文件放在$JAVA_HOME/lib/ext
中来实现。 使用以下任一方法,在您的 Java 安全配置文件中包括
BouncyCastle
供应商:-
JDK 中提供了一个默认配置文件
java.security
,并可更新为包含BouncyCastle
提供程序。如果没有指定其他安全配置文件,则使用此文件。有关此文件的位置,请查看 JDK 供应商的文档。 定义自定义 Java 安全配置文件,并通过添加
-Djava.security.properties==/path/to/java.security.properties
系统属性来引用它。使用两个等号引用时,默认策略将被覆盖,并且仅使用引用文件中定义的提供程序。使用一个等号时,如在
-Djava.security.properties=/path/to/java.security.properties
中一样,则提供程序会附加到默认安全文件中,首选使用在这两个文件中指定密钥时传递的文件。在需要不同安全设置的同一主机上运行的多个 JVM 时,此选项很有用。
下面显示了一个定义这些提供程序的示例配置文件。
示例:BuncyCastle 安全策略
# 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