Назад | Перейти на главную страницу

nginx proxy_pass восходящие протоколы TLS, не предпочитающие более высокую версию

Я пытаюсь proxy_pass к бэкэнду, и nginx не будет использовать TLSv1.3 и всегда будет использовать TLSv1.2 вместо этого, если только я не добавлю TLSv1.3 в proxy_ssl_protocols директива.

Проблема с этой конфигурацией в том, что она не будет работать для веб-сайтов, которые не поддерживают TLSv1.3. Кто-нибудь знает, как настроить nginx, чтобы он предпочитал более высокие версии TLS для proxy_pass?

nginx -V:

nginx version: nginx/1.17.10
built by gcc 8.3.0 (Debian 8.3.0-6)
built with OpenSSL 1.1.1d  10 Sep 2019
TLS SNI support enabled

Конфигурация, использующая TLSv1.3 для восходящего соединения:

http {
    upstream backend-servers {
        server some-tlsv1.3server:443;
        server some-tlsv1.2server:443;
    }
    server {
        listen          80;

        server_tokens   off;
        gzip            on;
        resolver        8.8.8.8;

        location / {
                proxy_ssl_protocols TLSv1.3;
                proxy_http_version 1.1;
                proxy_ssl_server_name on;
                proxy_pass https://backend-servers;
        }
    }
}

Конфигурация, которая не используйте TLSv1.3 для восходящего соединения:

http {
    upstream backend-servers {
        server some-tlsv1.3server:443;
        server some-tlsv1.2server:443;
    }
    server {
        listen          80;

        server_tokens   off;
        gzip            on;
        resolver        8.8.8.8;

        location / {
                proxy_ssl_protocols TLSv1.3 TLSv1.2;
                proxy_http_version 1.1;
                proxy_ssl_server_name on;
                proxy_pass https://backend-servers;
        }
    }
}