Après le déballage et le démarrage de KeyCloak pour écouter le 127.0.0.1, j'ai configuré NGinx pour fonctionner comme proxy inverse accessible à partir d'un domaine disponible au public via HTTPS.
Ceci est la configuration NGinx:
http
{
server_tokens off;
upstream keycloak { ip_hash; server 127.0.0.1:8080; }
server
{
server_name name.domain.tld;
listen 443 ssl http2; # managed by Certbot
ssl_certificate /path/to/cert; # managed by Certbot
ssl_certificate_key /path/to/key; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
location /
{
proxy_set_header Host $Host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Access-Control-Allow-Origin *;
proxy_pass http://keycloak;
}
}
server
{
server_name name.domain.tld;
listen 80;
location / { return 301 https://$server_name; }
}
}
Rien n'a été modifié dans tout fichier dans le répertoire KeyCloak.
KeyCloak est accessible, cependant, lors de la navigation dans la page de connexion, j'encore une page vierge à cause d'un contenu mixte JavaScript de "/auth/js/keycloak.js?version=df45z".
Cela peut être temporairement résolu en désactivant la protection des navigateurs contre le contenu mixte, mais cela me permettra à un loginpage dysfonctionnel me donnant ce message d'erreur: "Nous sommes désolés ... Paramètre non valide: Redirect_uri".
En outre, un HTTP 400 a été renvoyé de "/auth/realms/master/protocol/openid-connect/auth?client_id=security-admin-console&redirect_uri=https%3a%2f%2fname.domain.tld%2fauth%2fadmin%2fmaster% 2FCONSOLE% 2F & STATE = 5ABB646F-D1C8-49EF-8AE1-9358BFC50D6D & RESPEND_MODE = Fragment & Response_Type = Code & Scope = OpenID & Nonce = 525B593C-07AB-4FA-8CA0-BD64499061EB ".
(En espérant que l'origine est d'une valeur)
Questions précédentes relatives à cette question uniquement suggérées d'ajouter les directives proxy_set_header, qui évitaient un écran vide du tableau de bord initial que vous voyez lorsque vous accédez à la page Web KeyCloaks, mais pas aidée dans ce dernier problème mentionné.
Veuillez prendre en compte Je suis assez nouveau à ce sujet aurait dû manquer quelque chose de trivial.
Tout conseiller pour résoudre ce problème est très apprécié.
Votre configuration Nginx a l'air bien. J'ai récemment eu le même problème que vous aviez et j'avais plus ou moins la même configuration Nginx.
La seule chose que je devais toujours faire est de mettre à jour le fichier de configuration autonome dans le dossier KeyCloak. Vous pouvez trouver ce fichier à keycloak_folder/standalone/configuration/standalone.xml
.
Ici vous devrez chercher ce qui suit (+ - ligne 572):
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" />
...
</server>
Et ajoutez le proxy-address-forwarding=true
comme ça:
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" proxy-address-forwarding="true" />
...
</server>
Cela s'assurera que votre serveur interne KeyCloak JBoss Server est au courant de l'adresse proxy.