2

我已经使用 helm 安装了 keycloak。创建 Traefik 入口以允许公共访问

从 localhost:8080 创建管理员密码后,我只能在端口转发和本地访问时登录管理控制台。

当我使用公共 url 并单击管理控制台时,它会重定向到 https://website/auth/admin/master/console/ 并显示一个空白页面。

我发现了问题,但是当我更改 servicePort: https inside ingress 时,我得到一个内部服务器错误状态代码 500。

当我使用 http 端口时,出现以下错误:混合内容:“https://url/auth/admin/master/console/”处的页面是通过 HTTPS 加载的,但请求了不安全的脚本“http://url/” auth/js/keycloak.js?version=mxda6'。此请求已被阻止;内容必须通过 HTTPS 提供。

混合内容:“https://url.ca/auth/admin/master/console/”页面通过 HTTPS 加载,但请求了不安全的脚本“http://url/auth/js/keycloak.js?version” =mxda6'。此请求已被阻止;内容必须通过 HTTPS 提供。

我查看了 traefik 日志:

level=debug msg="'500 Internal Server Error' 导致:x509:无法验证 xxxx 的证书,因为它不包含任何 IP SAN"

4

2 回答 2

2

我找到了一个修复程序,但它仍然没有回答我的问题,为什么当入口指向 https 时,它不起作用。有答案吗?

因此,解决方法是在 statefulset keycloak 部署中的 ENV 下添加它。在ingress中,服务端口是http

            - name: PROXY_ADDRESS_FORWARDING
              value: "true"

我在https://github.com/eclipse/che/issues/9429找到了它

于 2020-11-26T18:22:11.927 回答
1

我遇到过同样的问题。白屏没有帮助,但浏览器控制台有帮助。它正在阻止混合内容,即脚本http://url/auth/js/keycloak.js?version=mxda6

Docker Hub上的文档说:

指定前端基本 URL

要为前端请求设置固定的基本 URL,请使用以下环境值(强烈建议在生产环境中这样做):

  • KEYCLOAK_FRONTEND_URL: 指定 Keycloak 的基本 URL(可选,默认从请求中检索)

我在清单中提供了带有 https 方案的外部 url,并且有问题的脚本现在作为 https url 出现在 index.html 中。

- name: KEYCLOAK_FRONTEND_URL
  value: "https://url/auth"

因为它是“强烈推荐”的,我想如果没有这个变量集,会有更多的小问题,比如其他链接生成错误,例如在电子邮件中虽然我还没有检查过。

于 2021-05-13T18:48:25.387 回答