Использование Nginx в качестве обратного прокси-сервера HTTPS

Использование Nginx в качестве обратного прокси-сервера HTTPS

Я пытаюсь настроить сервер Nginx для обратного проксирования веб-сервиса tomcat (к которому у меня нет доступа). По сути, это происходит потому, что сервер 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

Это аналогичный ответ наnginx как обратный прокси с восходящим SSL. Есть отдельныенастройки 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.

Связанный контент