Проблема при проксировании на nginx с ssl reject handshake on

Alexey Koscheev nginx-forum на forum.nginx.org
Вт Дек 22 08:48:37 UTC 2020


Сервер1 (принимает запросы и проксирует на сервер 2):

server {
listen a.b.c.d:443 ssl;
server_name
abcd.example
;
access_log off;
ssl_certificate     path_to.crt;
ssl_certificate_key path_to.key;
location / {
proxy_pass https://b.c.d.e:443;
proxy_ssl_server_name on;
proxy_set_header Host $host;
}
}

Сервер2
    server {
        listen b.c.d.e:443 ssl default_server;
        server_name _;

        access_log off;
        ssl_certificate /usr/local/nginx/conf/cert.pem;
        ssl_certificate_key /usr/local/nginx/conf/key.pem;
        ssl_reject_handshake on;

        location / {
            return 444;
        }
    }

server {
listen b.c.d.e:443 ssl http2;
server_name abcd.example
;
access_log access.log combined;
root /home2/xyz/abcd.example/WWW;
ssl_certificate     path_to.crt;
ssl_certificate_key path_to.key;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate path_to.trusted;
location / {
proxy_pass http://127.0.0.1:80;
}

}


Если на Сервер2 ssl_reject_handshake on;, то запросы к Сервер 1 завершаются
502 ошибкой. В error лог такое:
2020/12/22 11:05:13 [crit] 57654#0: *13192673 SSL_do_handshake() failed
(SSL: error:14094458:SSL routines:ssl3_read_bytes:tlsv1 unrecognized
name:SSL alert number 112) while SSL handshaking to upstream, client:
192.168.10.250, server: abcd.example, request: "GET / HTTP/2.0", upstream:
"https://b.c.d.e:443/", host: "xn--b1aghahdtcfeb2aifj5e.xn--p1ai"

Наличие строк 
proxy_ssl_server_name on;
proxy_set_header Host $host;
в конфиге server на Сервер1 никак не влияет на проблему.

В чем может быть дело?

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,290260,290260#msg-290260



Подробная информация о списке рассылки nginx-ru