keycloak / Nginx не перенаправляет в https (вместо http) - PullRequest
0 голосов
/ 10 декабря 2018

Я знаю, что этот вопрос уже решен, но я недостаточно уверен в своем умении nginx, чтобы решить эту проблему:

Мое приложение и keycloak находятся на доменах https.Когда я пытаюсь войти в систему из своего приложения, перенаправление находится не в https:

https://keycloack.mydomain.com/auth/realms/skilltrock/protocol/openid-connect/auth?scope=openid+email&redirect_uri=http%3A%2F%2Fskilltrock.mydomain.com%2Foidc_callback&response_type=code&client_id=flask_api&access_type=offline&openid.realm=skilltrock&state=eyJjc3JmX3Rva2VuIjogImNBNXBjcHdMOWtOcHcxMUZCLWV3LXlnQW5wSjlLVmFkIiwgImRlc3RpbmF0aW9uIjogImV5SmhiR2NpT2lKSVV6VXhNaUo5LkltaDBkSEE2THk5emEybHNiSFJ5YjJOckxuZGhibTVoYm05emRYVnlkWE11WTI5dEwzQnlhWFpoZEdVaS5Tek9aVHNvRmxQVW0tcFBoXzlPaGotc3lRWW9BUWxKLUFzZU1tVXU4dGk3ekNUdWQySjNMUUlGbkRBekhXM2tqRFF1NDgtMS1PTHpJNThqSGFST2RRUSJ9

Перенаправление происходит в http вместо https.У меня Nginx в качестве обратного прокси-сервера, и я знаю, что проблема в том, что здесь есть проблема, связанная с этим.Но я не понимаю, как автор решил проблему (мне не очень хорошо с Nginx)

keycloak перенаправляет URL-адреса на http вместо https

Вотмоя конфигурация nginx для скилла поддоменов (который является внешним интерфейсом):

server {
server_name  skilltrock.mydomain.com;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

location / {
      proxy_pass http://0.0.0.0:8080;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      # enable this if and only if you use HTTPS
      proxy_set_header            X-Forwarded-Proto https;
      proxy_set_header            Host $http_host;
      proxy_set_header            X-Real-IP $remote_addr;
      proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
    }


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

А другой для ключа субдомена

server {
server_name  keycloack.mydomain.com;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

location / {
        proxy_pass http://0.0.0.0:9000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Port 443;

        proxy_buffer_size 64k;
        proxy_buffers 8 64k;
        proxy_busy_buffers_size 64k;
    }


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

Моя проблема в том, что я не знаю,неверная конфигурация для ключа субдомена или для навыка субдомена.

Мое веб-приложение работает локально, даже если оно указывает на мой URL-адрес https-ключа.Так что я предполагаю, что это плохая конфета Nginx моего интерфейса.

Заранее спасибо

edit

На данный момент я исправил свою проблему, добавив http://skilltrock.mydomaine.com (обратите внимание на часть http) в ValidПеренаправить URI со страницы клиента администратора ключей.Затем Nginx перенаправляет http в часть https.Но я не уверен, что это хорошая идея - позволить такому же ключу перенаправлять.Это угроза безопасности?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...