有一个应用程序已在整个 Keycloack 服务器中配置了 SSO(Keycloack 是我的)。假设您可以通过以下方式访问该应用程序https://www.example.domain.com。现在,我无法直接访问该应用程序,但我想在我自己的域中提供它,即https://www.domain.another.com(这已与应用程序所有者达成一致)。为此,我尝试建立一个代理服务器,它将为我的 SSL 提供服务并将请求转发到www.example.domain.com。但有问题的部分是 SSO,因为成功登录后,它会重定向到https://www.example.domain.com代替https://www.domain.another.com。我不是这方面的专家,但应该如何配置,以便当请求来自代理时,它应该重定向到代理基本 URL?有一件事:我不想与应用程序所有者共享我的域的私钥。
对于代理,我使用具有以下配置的 Nginx:
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 443 ssl;
server_name http://www.domain.another.com;
ssl_password_file /home/keys/file.pass;
ssl_certificate /home/keys/tls.crt;
ssl_certificate_key /home/keys/tls.key;
location / {
proxy_pass https://www.example.domain.com;
proxy_http_version 1.1;
}
}
}