A.2. 配置您的环境以使用 BouncyCastle 供应商


您可以将 JBoss EAP 安装配置为使用 BouncyCastle 供应商。红帽不提供 Bouncy Castle JARs,它必须直接从 Bouncy Castle 获取。

重要

当指定 BouncyCastle 提供者时,必须使用 Java 8,因为 BouncyCastle API 只能被认证为 Java 8。

  1. 在您的 JDK 的 classpath 中包含 BouncyCastle JARs,以 bc-fipsbctls-fips 开头。对于 Java 8,这通过将 JAR 文件放在 $JAVA_HOME/lib/ext 中来实现。
  2. 使用以下任一方法,在您的 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 的值,以确保该提供程序具有优先权。每个供应商都必须具有唯一优先级。

  3. elytron 子系统配置为独占使用 BouncyCastle 提供程序。默认情况下,系统配置为使用 elytronopenssl 提供程序。因为还包括一个 TLS 的实现,建议禁用 OpenSSL 供应商以确保使用 Bouncy Castle 的 TLS 实现。

    /subsystem=elytron:write-attribute(name=final-providers,value=elytron)
  4. 重新加载服务器以使更改生效。

    reload
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.