Estou tentando configurar um servidor Nginx para reverter o proxy de um serviço da web Tomcat (ao qual não tenho acesso). Isso ocorre essencialmente porque o servidor Tomcat está executando o TLSv1.0, então estou tentando aumentar a versão.
No entanto, quando tento acessar o proxy, recebo um erro 502. Os logs do Ngnix estão mostrando - SSL_do_handshake() failed (SSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol) while SSL handshaking to upstream
.
Aqui está minha configuração do 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;
}
}
Eu tentei a mesma coisa com o Apache, mas vi exatamente o mesmo erro. Alguém tem alguma idéia?
Responder1
Esta é uma resposta semelhante anginx como proxy reverso com SSL upstream. Existem separadosconfigurações SSLpara definir os protocolos aceitáveis para seu proxy upstream
...
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;
}
}
Os três valores listados para proxy_ssl_protocols
são o conjunto padrão atual, mas podem ser alterados em versões futuras para remover TLSv1 e TLSv1.1.