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

«Плохой шлюз» при подключении к старым серверам IIS через SSL через обратный прокси NGINX

Я пытаюсь настроить сервер NGINX в качестве обратного прокси, чтобы можно было подключиться через TLS 1.2 к старому серверу IIS, который ограничен TLS 1.0.

Подключение по 80 порту работает нормально. Но я получаю 502 Bad Gateway когда я пытаюсь подключиться по https. Когда я смотрю журналы ошибок NGINX, я вижу эту строку ...

*364 peer closed connection in SSL handshake while SSL handshaking to upstream

Ниже приведена конфигурация обратного прокси-сервера. (Обратите внимание: URL-адрес веб-сайта и общедоступный IP-адрес изменены для сохранения анонимности)

 server{
        listen 80;
        listen [::]:80;
        server_name www.mywebsite.com;

        location /{
                proxy_set_header Host "www.mywebsite.com";
                proxy_pass http://192.168.201.235:80/; 
        }
}

server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;

        server_name www.mywebsite.com;

        ssl_certificate "/etc/pki/nginx/mywebsite.crt";
        ssl_certificate_key "/etc/pki/nginx/private/mywebsite.key";

        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        location / {
                proxy_set_header Host "www.mywebsite.com";
                proxy_pass https://192.168.201.235:443/;
        }
}

Могу ли я что-нибудь сделать, чтобы решить проблему с плохим шлюзом, при этом сохраняя безопасное соединение между прокси и целевым сервером?

Я могу подключиться к IP-адресу напрямую через HTTPS, и если я добавлю другой веб-сайт с поддержкой SSL после proxy_pass это тоже работает.

Я попытался найти ответ на этот вопрос в Google, но ни один из результатов пока не достаточно похож на мою ситуацию, чтобы быть полезным.

Настройки proxy_ssl_protocols похоже, контролирует соединение между nginx и вышестоящим сервером (Windows Server 2003 в вашем случае),

https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/

Его настройка по умолчанию сегодня может блокировать TLS 1.0, поэтому вам нужно установить proxy_ssl_protocols TLSv1; чтобы включить TLS 1.0.