0

我已经在 GCP 计算引擎 (VM) 上设置了 Keycloak (docker 容器)。设置后sslRequired=none,我可以通过公共 IP(例如http://33.44.55.66:8080)访问 Keycloak 并管理领域。

我已经配置了 GCP CLassic (HTTPS) 负载均衡器并添加了两个前端,如下所述。负载均衡器将请求转发到 VM 上的 Keycloak 实例。

在浏览器中,HTTP URL 工作正常,我可以登录 Keycloak 并管理领域。但是,对于 HTTPS URL,我收到以下错误

Mixed Content: The page at 'https://my-domain.com/auth/admin/master/console/' was loaded over HTTPS, but requested an insecure script 'http://my-domain.com/auth/js/keycloak.js?version=gyc8p'. This request has been blocked; the content must be served over HTTPS.

注意:我试过这个建议,但没有奏效

请问有人可以帮忙吗?

4

1 回答 1

1

我永远不会在纯 http 协议上公开 Keycloak。Keyclok 管理控制台本身通过 OIDC 协议进行保护,OIDC 需要使用 https 协议。因此默认sslRequired=EXTERNAL是供应商提供的安全且智能的配置选项。

SSL 卸载必须正确配置:

  • 带钥匙斗篷的容器PROXY_ADDRESS_FORWARDING=true
  • 负载均衡器/反向代理(nginx,GCP Classic Load Balancer,AWS ALB,...)具有正确的请求标头X-Forwarded-*配置,因此 Keycloak 容器将知道正确的协议,用于用户的域
于 2021-12-09T15:17:39.333 回答