%204.X%3F.png)
Wie verwende ich Ngnix als Reverse-Proxy für den Zugriff auf OpenShift (OKD) 4.X?
Ich habe Hunderte von Setups für den Reverse-Proxy (Nginx) ausprobiert und sie alle schlagen mit dem Fehler fehl„Anwendung ist nicht verfügbar“wenn wir auf dieoauth-openshift.apps.mbr.some.dmRoute.
NOTIZ:Dieses Problem tritt nicht auf, wenn wir direkt auf diese Route zugreifen (ohne Reverse Proxy zu verwenden).Möglicherweise werden Informationen, die für die Routenberechnung erforderlich sind, nicht gesendet.
Dies ist die grundlegende Konfigurationsvorlage, die wir verwenden …
server {
access_log /var/log/nginx/apps.mbr.some.dm-access.log;
error_log /var/log/nginx/apps.mbr.some.dm-error.log;
server_name ~^(?<subdomain>.+)\.apps\.mbr\.some\.dm$;
location / {
proxy_pass https://10.2.0.18:443;
proxy_set_header Host $subdomain.apps.mbr.some.dm;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
}
listen 443;
ssl_certificate /etc/letsencrypt/live/apps.mbr.some.dm/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/apps.mbr.some.dm/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
Wir haben diese Parameter auch getestet und sind auf einige Probleme gestoßen, wie Sie unten sehen können …
server {
[...]
location / {
[...]
proxy_ssl_certificate /etc/nginx/backend_ss_certs/apps.mbr.some.dm.crt;
proxy_ssl_certificate_key /etc/nginx/backend_ss_certs/apps.mbr.some.dm.key;
proxy_ssl_trusted_certificate /etc/nginx/backend_ss_certs/apps.mbr.some.dm.crt.key.pem;
proxy_ssl_ciphers HIGH:!aNULL:!MD5;
proxy_ssl_protocols TLSv1.2 TLSv1.3;
proxy_ssl_server_name on;
proxy_ssl_session_reuse on;
proxy_ssl_verify on;
[...]
}
[...]
}
Die Zertifikateapps.mbr.some.dm.crt,apps.mbr.some.dm.key,apps.mbr.some.dm.crt.key.pemsind die selbstsignierten Zertifikate, die von OpenShift (OKD) verwendet werden, um den Zugriff auf Ressourcen (HTTPS) zu ermöglichen. Wenn wir jedoch versuchen, diese Zertifikate mit dem Reverse-Proxy (Nginx) zu verwenden, tritt der folgende Fehler auf („Bad Gateway“)...
2021/07/22 17:36:11 [error] 6999#6999: *1 upstream SSL certificate verify error: (21:unable to verify the first certificate) while SSL handshaking to upstream, client: 177.25.231.233, server: ~^(?<subdomain>.+)\.apps\.mbr\.brlight\.net$, request: "GET /favicon.ico HTTP/1.1", upstream: "https://10.2.0.18:443/favicon.ico", host: "oauth-openshift.apps.mbr.some.dm", referrer: "https://oauth-openshift.apps.mbr.some.dm/oauth/authorize?client_id=console&redirect_uri=https%3A%2F%2Fconsole-openshift-console.apps.mbr.some.dm%2Fauth%2Fcallback&response_type=code&scope=user%3Afull&state=ff6f3064"
KEIN:Wir testeten dieapps.mbr.some.dm.crtUndapps.mbr.some.dm.crt.key.pemZertifikate mitLockeund beide haben perfekt funktioniert.
PLUS:Wir konnten keine Methode zur Diagnose/Beobachtung (Protokolle) definieren, was schief läuft, wenn die Anfrage die Route erreichtoauth-openshift.apps.mbr.some.dm. Ich denke, das würde uns helfen herauszufinden, was schief läuft.