Я пытаюсь настроить сервер Nginx для обратного прокси-сервера веб-службы tomcat (к которой у меня нет доступа). По сути, это потому, что на сервере Tomcat работает TLSv1.0, поэтому я пытаюсь увеличить версию.
Однако, когда я пытаюсь получить доступ к прокси, я получаю ошибку 502. Журналы Ngnix показывают - SSL_do_handshake() failed (SSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol) while SSL handshaking to upstream
.
Вот моя конфигурация Nginx -
ssl_certificate /etc/nginx/certs/public.pem;
ssl_certificate_key /etc/nginx/certs/private.key;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
server {
listen 6003;
server_name example.com;
ssl on;
location / {
proxy_pass https://example.com:6003;
}
}
Я пробовал то же самое с Apache, но увидел точно такую же ошибку. У кого-нибудь есть идеи?
Это аналогичный ответ на nginx как обратный прокси с восходящим SSL. Есть отдельные настройки ssl установить приемлемые протоколы для вашего прокси-сервера
...
server {
listen 6003;
server_name example.com;
ssl on;
ssl_certificate /etc/nginx/certs/example.pem;
ssl_certificate_key /etc/nginx/certs/private.key;
... other settings
location / {
proxy_pass https://example.com:6003;
proxy_ssl_trusted_certificate /etc/nginx/certs/example.pem;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}
}
Три перечисленных значения для proxy_ssl_protocols
являются текущим набором по умолчанию, но они, вероятно, могут быть изменены в будущих выпусках, чтобы удалить TLSv1 и TLSv1.1.