Я пытаюсь 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;
}
}
}