我正在Apache反向代理后面的Wildfly服务器上运行JEE应用。它使用keycloak-client-adapter连接到也在Apache反向代理后面的Keycloak服务器。两个反向代理都终止SSL连接,并通过http连接到Wildfly服务器。
当我打开JEE应用程序时,我将重定向到Keycloak,输入密码后,我还将重定向到我的应用程序-全部通过SSL通过反向代理进行。但是随后我得到了403-原因:App Wildfly尝试连接到Keycloak以验证http上的令牌。这既不被允许(在keycloak.json中为“ ssl-required”:“ all”,在领域中进行设置)也不是http处于活动状态。
从应用程序wildfly server.log
Adapter requires SSL. Request: http://www.domain.tld/myapp/
我已经根据文档设置了Keycloak的反向代理,.well-known / openid-configuration看起来不错-所有URL均为https
keycloak.json
{
"realm": "myrealm",
"auth-server-url": "https://sso.domain.tld/auth",
"ssl-required": "all",
"resource": "myresource",
"verify-token-audience": true,
"credentials": {
"secret": "secret"
},
"use-resource-role-mappings": true,
"confidential-port": 443,
"policy-enforcer": {}
}
应用程序反向代理的设置
ProxyPreserveHost On
ProxyPass /myapp http://127.0.0.1:8080/myapp
ProxyPassReverse /myapp https://www.domain.tld/myapp
有人知道如何在验证中强制使用https吗?那应该是使安装程序运行的最后一步。