如何使用反向代理修复 Keycloak 中的“我们很抱歉需要 HTTPS”?

Posted

技术标签:

【中文标题】如何使用反向代理修复 Keycloak 中的“我们很抱歉需要 HTTPS”?【英文标题】:How to fix "We're sorry HTTPS required" in Keycloak with reverse proxy? 【发布时间】:2019-09-10 11:52:06 【问题描述】:

当我尝试使用 SSL/HTTPS 访问 Azure 网关(反向代理)后面的 Keycloak 6 时,我的浏览器中出现 “抱歉,需要 HTTPS” 错误。在我看到的 Keycloak 日志中

[org.keycloak.events](默认任务 2)type=LOGIN_ERROR,realmId=master,clientId=null,userId=null,ipAddress=x.x.x.x,error=ssl_required

我假设我在此过程中配置错误,但我无法弄清楚它是什么。

我按照以下说明在反向代理后面的 Keycloak 6 中设置 SSL:

https://www.keycloak.org/docs/latest/server_installation/index.html#setting-up-https-ssl

我没有创建/导入任何证书,因为指南说“如果您没有使用反向代理或负载平衡器来为您处理 HTTPS 流量,您需要为 Keycloak 服务器启用 HTTPS。这涉及 获取或生成包含 SSL/HTTP 流量的私钥和证书的密钥库 配置 Keycloak 服务器以使用此密钥对和证书。”

我的问题是,我是否需要创建/导入证书,即使我在反向代理后面?如果没有,还有其他想法吗?

请注意:我正在运行 Keycloak 独立服务器,而不是将其用作任何其他服务器容器(如 Wildfly)的覆盖层

【问题讨论】:

【参考方案1】:

在这个帖子上找到了答案。

why is keycloak removing the SSL in the redirect uri?

底线,您不需要生成/安装证书并且有一个未记录的属性

proxy-address-forwarding="true"

【讨论】:

以上是关于如何使用反向代理修复 Keycloak 中的“我们很抱歉需要 HTTPS”?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 中将 keycloak 与不同的上下文根和反向代理集成

使用 nginx 作为反向代理和 keycloak 作为上游服务器的组合失败

keycloak + spring 适配器 +spring security 反向代理重定向到root

使用自定义基本 URL 为 Keycloak docker 配置反向代理

keycloak 无效参数:redirect_uri 在反向代理后面

使用反向代理后面的 keycloak 进行身份验证失败