Usando Nginx como proxy inverso HTTPS

Usando Nginx como proxy inverso HTTPS

Estoy intentando configurar un servidor Nginx para revertir el proxy de un servicio web Tomcat (al que no tengo acceso). Esto se debe esencialmente a que el servidor Tomcat ejecuta TLSv1.0, por lo que estoy intentando mejorar la versión.

Sin embargo, cuando intento acceder al proxy aparece un error 502. Los registros de Ngnix muestran: SSL_do_handshake() failed (SSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol) while SSL handshaking to upstream.

Aquí está mi configuración de 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;
    }
}

Intenté lo mismo con Apache pero veo exactamente el mismo error. ¿Alguien tiene alguna idea?

Respuesta1

Esta es una respuesta similar anginx como proxy inverso con SSL ascendente. hay separadosconfiguración sslpara configurar los protocolos aceptables para su proxy ascendente

...

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

Los tres valores enumerados proxy_ssl_protocolsson el conjunto predeterminado actual, pero posiblemente podrían cambiar en versiones futuras para eliminar TLSv1 y TLSv1.1.

información relacionada