Verwenden von Nginx als HTTPS-Reverse-Proxy

Verwenden von Nginx als HTTPS-Reverse-Proxy

Ich versuche, einen Nginx-Server so einzurichten, dass er einen Tomcat-Webdienst (auf den ich keinen Zugriff habe) als Reverse-Proxy verwendet. Dies liegt im Wesentlichen daran, dass auf dem Tomcat-Server TLSv1.0 ausgeführt wird, daher versuche ich, die Version zu erhöhen.

Beim Versuch, auf den Proxy zuzugreifen, wird mir jedoch ein 502-Fehler angezeigt. Die Ngnix-Protokolle zeigen - SSL_do_handshake() failed (SSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol) while SSL handshaking to upstream.

Hier ist meine Nginx-Konfiguration -

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;
    }
}

Ich habe dasselbe mit Apache versucht, aber es tritt genau der gleiche Fehler auf. Hat jemand eine Idee?

Antwort1

Dies ist eine ähnliche Antwort aufnginx als Reverse-Proxy mit Upstream-SSLEs gibt separateSSL-Einstellungenum die akzeptablen Protokolle für Ihren Upstream-Proxy festzulegen

...

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;
    }
}

Die drei aufgelisteten Werte proxy_ssl_protocolsstellen den aktuellen Standardsatz dar, könnten sich jedoch in zukünftigen Versionen ändern, um TLSv1 und TLSv1.1 zu entfernen.

verwandte Informationen