Cum să utilizați Ngnix ca proxy invers pentru a accesa OpenShift (OKD) 4.X?
Am încercat sute de setări pentru proxy-ul invers (Nginx) și toate eșuează cu eroarea „Aplicația nu este disponibilă” când accesăm oauth-openshift.apps.mbr.some.dm traseu.
NOTĂ: Această problemă nu apare dacă accesăm direct această rută (fără a folosi Reverse Proxy). Poate că unele informații necesare pentru ca ruta să fie rezolvată nu sunt trimise.
Acesta este șablonul de configurare de bază pe care îl folosim...
Server {
access_log /var/log/nginx/apps.mbr.some.dm-access.log;
error_log /var/log/nginx/apps.mbr.some.dm-error.log;
nume_server ~^(?<subdomeniu>.+)\.apps\.mbr\.some\.dm$;
Locație / {
proxy_pass https://10.2.0.18:443;
proxy_set_header Gazdă $subdomain.apps.mbr.some.dm;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
}
asculta 443;
ssl_certificate /etc/letsencrypt/live/apps.mbr.some.dm/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/apps.mbr.some.dm/privkey.pem;
includ /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
Am testat și acești parametri și am avut câteva probleme, așa cum puteți vedea mai jos...
Server {
[...]
Locație / {
[...]
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 activat;
proxy_ssl_session_reuse activat;
proxy_ssl_verify on;
[...]
}
[...]
}
Certificatele apps.mbr.some.dm.crt, apps.mbr.some.dm.key, apps.mbr.some.dm.crt.key.pem sunt certificatele autosemnate utilizate de OpenShift (OKD) pentru a permite accesul la resurse (HTTPS). Cu toate acestea, dacă încercăm să folosim aceste certificate cu proxy invers (Nginx), apare următoarea eroare ("Bad Gateway")...
22/07/2021 17:36:11 [eroare] 6999#6999: *1 eroare de verificare a certificatului SSL în amonte: (21: nu se poate verifica primul certificat) în timp ce acordarea de mână SSL către amonte, client: 177.25.231.233, server: ~ ^(?<subdomeniu>.+)\.apps\.mbr\.brlight\.net$, cerere: „GET /favicon.ico HTTP/1.1”, în amonte: „https://10.2.0.18:443/favicon .ico", gazdă: „oauth-openshift.apps.mbr.some.dm”, referitor: „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"
NOTĂ: Am testat apps.mbr.some.dm.crt și apps.mbr.some.dm.crt.key.pem certificate folosind răsuci si ambele au functionat perfect.
PLUS: Nu am putut defini o modalitate de a diagnostica/observa (jurnalele) despre ce nu merge bine atunci când solicitarea ajunge pe ruta oauth-openshift.apps.mbr.some.dm . Cred că asta ne-ar ajuta să ne dăm seama ce nu merge bine.