将 Keycloak 作为联合身份提供者与 WSO2 身份服务器一起使用时出现 SSL 错误

问题描述

我正在以独立模式运行 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 设置密钥库,但似乎没有任何效果

在这个设置中遗漏了什么吗?

解决方法

在检查 Keycloak 的信任库中的证书后修复了该问题。

原因:未正确导入 WSO2 IS 的证书且未正确配置信任库。