2.4.5. 迁移信任存储配置
truststore 用于外部 TLS 通信,如 HTTPS 请求和 LDAP 服务器。要使用信任存储,您可以将远程服务器或 CA 的证书导入到信任者中。然后,您可以启动红帽构建的 Keycloak 服务器,指定系统信任存储。
例如,以前的配置如下所示:
<spi name="truststore">
<provider name="file" enabled="true">
<properties>
<property name="file" value="path/to/myTrustStore.jks"/>
<property name="password" value="password"/>
<property name="hostname-verification-policy" value="WILDCARD"/>
</properties>
</provider>
</spi>
红帽构建的 Keycloak 支持采用以下格式的信任存储: PEM 文件,或带有扩展 .p12 和 .pfx 的 PKCS12 文件。对于 PKCS12 文件,证书必须加密,这意味着不需要密码。需要转换 JKS 信任存储。由于 Java keytool 强制最小密码长度为 6 个字符,因此 openssl 可用作创建未加密的 PKCS12 信任存储的替代选择。
通过导入旧 JKS 信任存储的内容,使用 keytool 创建一个带有临时密码的 PKCS12 信任存储。
keytool -importkeystore -srckeystore path/to/myTrustStore.jks \ -destkeystore path/to/myTrustStore.p12 \ -srcstoretype jks \ -deststoretype pkcs12 \ -srcstorepass password \ -deststorepass temp-password使用
openssl导出新 PKCS12 信任存储的内容。openssl pkcs12 -in path/to/myTrustStore.p12 \ -out path/to/myTrustStore.pem \ -nodes -passin pass:temp-password使用
openssl将内容重新导入到新的未加密的 PKCS12 信任存储中。openssl pkcs12 -export -in path/to/myTrustStore.pem \ -out path/to/myUnencryptedTrustStore.p12 \ -nokeys -passout pass:在本例中,生成的 CLI 参数如下:
kc.sh start
--truststore-paths path/to/myUnencryptedTrustStore.p12
--tls-hostname-verifier WILDCARD