17.2. 生成密钥存储


您可以创建 pkcs12bcfks 密钥存储,以用于红帽构建的 Keycloak 服务器 SSL。

17.2.1. PKCS12 keystore

p12 (或 pkcs12)密钥存储(以及/或信任存储)在 BCFIPS 非批准模式下可以正常工作。

PKCS12 密钥存储可以在 RHEL 9 上使用 OpenJDK 21 Java 生成。例如,以下命令可用于生成密钥存储:

keytool -genkeypair -sigalg SHA512withRSA -keyalg RSA -storepass passwordpassword \
  -keystore $KEYCLOAK_HOME/conf/server.keystore \
  -alias localhost \
  -dname CN=localhost -keypass passwordpassword
Copy to Clipboard

FIPS 模式中的 pkcs12 密钥存储 不管理 secret (symmetric)密钥。这个限制由 BCFIPS 供应商实施,该提供程序不允许在 pkcs12 密钥存储类型内这种类型的密钥。

当系统处于 FIPS 模式时,默认的 java.security 文件将更改为使用启用了 FIPS 的安全供应商,因此不需要额外的配置。另外,在 PKCS12 密钥存储中,您只需使用 keytool 命令存储 PBE (基于密码的加密)密钥,这使其成为使用红帽构建的 Keycloak KeyStore Vault 和/或将配置属性存储在 KeyStore Config Source 中的配置属性的理想选择。如需了解更多详细信息,请参阅配置红帽构建的 Keycloak使用密码库

17.2.2. BCFKS 密钥存储

BCFKS 密钥存储生成需要使用 BouncyCastle FIPS 库和自定义安全文件。

您可以创建一个帮助程序文件,如 /tmp/kc.keystore-create.java.security。文件的内容只需要具有以下属性:

securerandom.strongAlgorithms=PKCS11:SunPKCS11-NSS-FIPS
Copy to Clipboard

接下来,输入以下命令来生成密钥存储:

keytool -keystore $KEYCLOAK_HOME/conf/server.keystore \
  -storetype bcfks \
  -providername BCFIPS \
  -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider \
  -provider org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider \
  -providerpath $KEYCLOAK_HOME/providers/bc-fips-*.jar \
  -alias localhost \
  -genkeypair -sigalg SHA512withRSA -keyalg RSA -storepass passwordpassword \
  -dname CN=localhost -keypass passwordpassword \
  -J-Djava.security.properties=/tmp/kc.keystore-create.java.security
Copy to Clipboard
警告

使用自签名证书仅用于演示目的,因此当您迁移到生产环境时,将这些证书替换为正确的证书。

当您使用 bcfks 类型的 keystore/truststore 进行任何其他操作时,需要类似的选项。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat