14.2. 生成密钥存储
您可以创建 pkcs12
或 bcfks
密钥存储,以用于红帽构建的 Keycloak 服务器 SSL。
14.2.1. PKCS12 密钥存储
p12
(或 pkcs12
)密钥存储(和/或信任存储)在 BCFIPS 非批准模式下可以正常工作。
PKCS12 密钥存储可以以标准的方式在 RHEL 9 上使用 OpenJDK 17 Java 生成。例如,以下命令可用于生成密钥存储:
keytool -genkeypair -sigalg SHA512withRSA -keyalg RSA -storepass passwordpassword \ -keystore $KEYCLOAK_HOME/conf/server.keystore \ -alias localhost \ -dname CN=localhost -keypass passwordpassword
当系统处于 FIPS 模式时,默认 java.security
文件会被修改以使用启用了 FIPS 的安全供应商,因此不需要额外的配置。另外,在 PKCS12 密钥存储中,您只能使用 keytool 命令存储 PBE (基于密码的加密)密钥,这使其成为将红帽构建的 Keycloak KeyStore Vault 和/或将配置属性存储在 KeyStore Config Source 中。如需了解更多详细信息,请参阅配置红帽构建的 Keycloak 和 使用密码库。
14.2.2. BCFKS 密钥存储
BCFKS 密钥存储生成需要使用 BouncyCastle FIPS 库和自定义安全文件。
您可以先创建一个帮助程序文件,如 /tmp/kc.keystore-create.java.security
。文件的内容只需要具有以下属性:
securerandom.strongAlgorithms=PKCS11:SunPKCS11-NSS-FIPS
接下来,输入如下命令来生成密钥存储:
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
使用自签名证书仅用于演示目的,因此当您迁移到生产环境时,将这些证书替换为正确的证书。
当您使用 bcfks
类型的密钥存储/truststore 进行任何其他操作时需要类似的选项。