Nginx를 HTTPS 역방향 프록시로 사용

Nginx를 HTTPS 역방향 프록시로 사용

Tomcat 웹 서비스(액세스할 수 없음)를 역방향 프록시하도록 Nginx 서버를 설정하려고 합니다. 이는 본질적으로 Tomcat 서버가 TLSv1.0을 실행하고 있기 때문에 버전을 올리려고 하기 때문입니다.

그러나 프록시에 액세스하려고 하면 502 오류가 발생합니다. Ngnix 로그가 표시됩니다 - SSL_do_handshake() failed (SSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol) while SSL handshaking to upstream.

내 Nginx 구성은 다음과 같습니다.

ssl_certificate  /etc/nginx/certs/public.pem;
ssl_certificate_key  /etc/nginx/certs/private.key;
ssl_session_timeout  5m;
ssl_prefer_server_ciphers  on;
ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers  AES256+EECDH:AES256+EDH:!aNULL;

server {
    listen 6003;
    server_name example.com;
    ssl on;
    location / {
        proxy_pass https://example.com:6003;
    }
}

Apache로 동일한 작업을 시도했지만 정확히 동일한 오류가 표시됩니다. 누구든지 어떤 아이디어가 있습니까?

답변1

와 비슷한 답변이네요업스트림 SSL을 사용하는 역방향 프록시인 nginx. 별도로 있습니다SSL 설정업스트림 프록시에 허용되는 프로토콜을 설정하려면

...

server {

    listen 6003;
    server_name example.com;
    ssl on;
    ssl_certificate  /etc/nginx/certs/example.pem;
    ssl_certificate_key  /etc/nginx/certs/private.key;
    ... other settings

    location / {
        proxy_pass https://example.com:6003;
        proxy_ssl_trusted_certificate /etc/nginx/certs/example.pem;
        proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    }
}

나열된 세 가지 값은 proxy_ssl_protocols현재 기본 설정이지만 TLSv1 및 TLSv1.1을 제거하기 위해 향후 릴리스에서 변경될 수 있습니다.

관련 정보