Ngnix를 역방향 프록시로 사용하여 OpenShift(OKD) 4.X에 액세스하는 방법은 무엇입니까?

Ngnix를 역방향 프록시로 사용하여 OpenShift(OKD) 4.X에 액세스하는 방법은 무엇입니까?

Ngnix를 역방향 프록시로 사용하여 OpenShift(OKD) 4.X에 액세스하는 방법은 무엇입니까?

역방향 프록시(Nginx)에 대해 수백 가지 설정을 시도했지만 모두 오류와 함께 실패했습니다."신청이 불가능합니다."우리가 액세스할 때oauth-openshift.apps.mbr.some.dm노선.

메모:(역방향 프록시를 사용하지 않고) 이 경로에 직접 액세스하는 경우에는 이 문제가 발생하지 않습니다.아마도 경로를 해결하는 데 필요한 일부 정보가 전송되지 않을 수 있습니다.

이것이 우리가 사용하는 기본 구성 템플릿입니다...

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;
}

또한 이러한 매개변수를 테스트한 결과 아래에서 볼 수 있듯이 몇 가지 문제가 발생했습니다.

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;
        [...]
    }
    [...]
}

인증서apps.mbr.some.dm.crt,apps.mbr.some.dm.key,apps.mbr.some.dm.crt.key.pem리소스(HTTPS)에 대한 액세스를 허용하기 위해 OpenShift(OKD)에서 사용되는 자체 서명된 인증서입니다. 그러나 이러한 인증서를 역방향 프록시(Nginx)와 함께 사용하려고 하면 다음 오류가 발생합니다("잘못된 게이트웨이")...

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"

참고:우리는apps.mbr.some.dm.crt그리고apps.mbr.some.dm.crt.key.pem다음을 사용하는 인증서곱슬 곱슬하다둘 다 완벽하게 작동했습니다.


을 더한:요청이 경로에 도착할 때 무엇이 ​​잘못되었는지 진단/관찰(로그)하는 방법을 정의할 수 없습니다.oauth-openshift.apps.mbr.some.dm. 나는 이것이 무엇이 잘못되었는지 알아내는 데 도움이 될 것이라고 생각합니다.

관련 정보