KeyCloak - 入口不允许通过 https 服务连接
Posted
技术标签:
【中文标题】KeyCloak - 入口不允许通过 https 服务连接【英文标题】:KeyCloak - ingress does not allow connecting over https service 【发布时间】:2021-03-09 12:50:28 【问题描述】:我已经使用 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?版本=mxda6'。此请求已被阻止;内容必须通过 HTTPS 提供。
我查看了 traefik 日志:
level=debug msg="'500 Internal Server Error' cause: x509: cannot validate certificate for x.x.x.x because it does not contain any IP SANs"
【问题讨论】:
【参考方案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"
既然是“强烈推荐”,我想如果没有这个变量集,会有更多的小问题,比如其他链接生成错误,例如在电子邮件中,虽然我还没有检查过。
【讨论】:
【参考方案2】:我找到了一个修复程序,但它仍然没有回答我的问题,为什么当入口指向 https 时,它不起作用。有答案吗?
所以解决方法是在 statefulset keycloak 部署中的 ENV 下添加它。 在ingress中,服务端口是http
- name: PROXY_ADDRESS_FORWARDING
value: "true"
我在https://github.com/eclipse/che/issues/9429找到它
【讨论】:
以上是关于KeyCloak - 入口不允许通过 https 服务连接的主要内容,如果未能解决你的问题,请参考以下文章
在nginx入口控制器后启用tls时,keycloak停止工作。
为啥在较新版本的 Keycloak 中不允许使用身份验证流程中的脚本