Usando o Nginx como um proxy reverso HTTPS

1

Estou tentando configurar um servidor Nginx para fazer o proxy reverso de um serviço web tomcat (ao qual não tenho acesso). Isso é 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, estou recebendo um erro 502. Os logs do Ngnix estão sendo exibidos - 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 vejo exatamente o mesmo erro. Alguém tem alguma ideia?

    
por Chris Edgington 20.02.2018 / 15:28

1 resposta

1

Esta é uma resposta semelhante a nginx como proxy reverso com SSL upstream . Existem configurações ssl separadas para definir os protocolos aceitáveis para o 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.

    
por 21.02.2018 / 00:55