使用服务器证书捆绑包配置密钥斗篷



我已经通过在 Java 密钥库中放置证书A.crt并在standalone.xml中配置该密钥库,在 Keycloak 服务器上配置了 HTTPS。到目前为止,HTTPS访问在给定客户端上运行良好。证书由中间 CAB签名,该中间 CAC由根 CA 签名。

我现在在从另一个客户端访问 Keycloak 时遇到问题。它说:"无法获取本地颁发者证书"或"由未知机构签名的证书"(取决于客户端软件)。我很确定根本原因是该客户端不知道 CA 证书B.crt。一个强烈的迹象是,我可以使用curl --cacert B.crt https://keycloak...从该客户端访问Keycloak。

由于我无法预测哪些客户端将安装哪些 CA 证书,因此我想配置一个由A.crtB.crtC.crt组成的捆绑包作为根证书。如果这是一个直接获取PEM证书的服务器,我会使用由cat A.crt B.crt C.crt > bundle.crt生成的捆绑包,但由于它使用了Java密钥库,因此这不是Keycloak的选项。

那么,如何将服务器证书包(这是正确的术语)存储到 Java 密钥库中,以便 Keycloak 能够以"所有"客户端可以访问该服务的方式使用它呢?

更新我尝试将中间证书和根证书BC添加到Keycloak已经使用的密钥库中,但这并没有解决当前的问题:

keytool -import -alias b -file B.crt -keystore $KEYSTORE
keytool -import -alias c -file C.crt -keystore $KEYSTORE

您说在您的独立文件中配置了一个密钥库.xml其中导入了 A.crt,但是您有信任库吗?您可以尝试在信任库中添加 B.crt。

最新更新