我已经在GCP计算引擎(VM(上设置了Key斗篷(docker容器(。在设置了sslRequired=none
之后,我可以通过公共IP访问Key斗篷(例如。http://33.44.55.66:8080)并管理王国。
我已经配置了GCP CLassic(HTTPS(负载均衡器,并添加了两个前端,如下所述。负载均衡器将请求转发到虚拟机上的Keycloft实例。
- HTTP:http://55.44.33.22/keycloak
- HTTPS:https://my-domain.com/keycloak
在浏览器中,HTTP URL运行良好,我可以登录到Key斗篷并管理领域。然而,对于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.
注意:我尝试过这个建议,但不起作用
有人能帮忙吗?
我永远不会在纯http协议上公开Key斗篷。Keyclok管理控制台本身通过OIDC协议进行安全保护,OIDC要求使用https协议。因此,默认sslRequired=EXTERNAL
是供应商提供的安全且智能的配置选项。
SSL卸载必须正确配置:
- 带有
PROXY_ADDRESS_FORWARDING=true
的Keycloft容器 - 负载平衡器/反向代理(nginx,GCP Classic Load Balancer,AWS ALB,…(,具有正确的请求头
X-Forwarded-*
配置,因此Key斗篷容器将知道用户使用的正确协议和域