3

我有一个与 keycloak 集成的应用程序。该应用程序在 Wildfly 服务器上运行。我使用 web.xml 来验证 keycloak(作为登录配置)。除此之外,我使用 keycloak.json 文件,我在应用程序中定义 keycloak 领域设置。当我调用应用程序页面时,keycloak 登录页面打开,输入凭据后,它返回 wildfly,出现 403 禁止错误。

以前,相同的设置可以工作,但现在启用 ssl 后,我遇到了这个问题。

请帮助我解决问题,是否需要任何其他额外的 ssl 设置。

4

3 回答 3

3

如果在启用 SSL 后登录失败的情况是因为 SSL 证书不在信任库中,您可能会出现此异常javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

为此,您可以通过在 keycloak.json 中添加以下配置来禁用信任管理器

  {
    ...
    "disable-trust-manager": true
  }

如果这解决了问题,那么正确的做法是将证书添加到信任库并在 keycloak.json 文件中指定它,就像这样。

 {
    ...
    "truststore": "cacerts.jks",
    "truststore-password" : "password"
  }
于 2016-03-08T05:45:05.853 回答
1

问题出在 keycloak 配置上。为我的应用程序创建的角色没有范围。在充分发挥作用后,问题得到了解决。

于 2016-03-31T08:32:30.417 回答
1

由于设置在没有 SSL 的情况下工作,与范围相关的问题可能不会导致 403 错误。相反,可以首先测试通过 IDP HTTPS 端口从客户端应用程序服务器到 IDP 服务器的连接(可以使用 telnet)。

否则,它可能是 SSL 证书验证问题,正如 @Shiva 所回答的那样。只是补充一下,理想情况下,有效的 CA 证书可能不会产生信任问题。在这种情况下,可以检查 IDP 证书 CA 支持的浏览器和 java 版本。只需升级到最新的 java 版本或将 CA 的根证书添加到您的默认信任库即可解决此类问题。这不需要对 keycloak.json 文件进行任何更改。

GoDaddy 证书颁发示例

PS:由于我无法添加评论,因此在此处添加了这些要点。

于 2017-07-13T18:54:59.150 回答