将 Keycloak 用作 WSO2 身份服务器的联合身份提供者时出现 SSL 错误
Posted
技术标签:
【中文标题】将 Keycloak 用作 WSO2 身份服务器的联合身份提供者时出现 SSL 错误【英文标题】:SSL error when using Keycloak as a federated identity provider with WSO2 Identity Server 【发布时间】:2021-05-06 12:38:18 【问题描述】:我正在独立模式下运行 Keycloak 实例。我已将 Keycloak 配置为 WSO2 IS 中的 OIDC 联合 IdP,并将 WSO2 IS 配置为 Keycloak 中的客户端。我还有一个正在运行的应用程序,它连接到 WSO2 IS 并使用 Keycloak 进行联合身份验证。 我可以毫无问题地登录应用程序,但是当我尝试从应用程序注销时,Keycloak 中会发生注销,但 Keycloak 控制台中会出现以下错误,
[org.keycloak.services] (default task-17) KC-SERVICES0057: Logout for client 'WSO2-IS' failed: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我尝试创建一个密钥库standalone/configuration/application.keystore
并将 WSO2 IS 的证书导入其中,并将 Keycloak 的证书导入 WSO2 IS 密钥库。但它没有用。 (请注意,即使在服务器启动后,application.keystore
也不在 standalone/configuration/
位置。)
我也按照guide 设置了一个密钥库,但似乎没有任何效果。
我在这个设置中有什么遗漏吗?
【问题讨论】:
可能缺少一些中间 CA 证书。这是 Let's Encrypt 用户的常见问题。他们不导入/配置中间证书,因此可以验证正确的验证路径。 感谢您的快速回复。在您发表评论后,我检查了密钥库中的证书,似乎 WSO2 IS 证书未正确导入。现在问题解决了。 【参考方案1】:在检查 Keycloak 的信任库中的证书后修复了该问题。
原因:WSO2 IS 的证书未正确导入,信任库未正确配置。
【讨论】:
以上是关于将 Keycloak 用作 WSO2 身份服务器的联合身份提供者时出现 SSL 错误的主要内容,如果未能解决你的问题,请参考以下文章
Spring SAML 与 WSO2 身份服务器集成,无法识别 SAML 消息