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_protocols
son el conjunto predeterminado actual, pero posiblemente podrían cambiar en versiones futuras para eliminar TLSv1 y TLSv1.1.