Я пытаюсь настроить сервер 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.