Hallo,
ich habe eine grundsätzliche Frage dazu, wie man NGINX sicher als Reverse Proxy einsetzt und leider nicht wirklich was dazu im Netz gefunden.
Mal angenommen auf Server A läuft eine Webapplikation, die auf 10.0.0.1:5000 hört und auf Server B läuft mein NGINX, der auf 10.0.0.2:80/443 hört. Ich möchte also von Server A zu B einen Reverse Proxy machen und die Verbindung soll mit TLS abgesichert sein.
upstream serverA {
server 10.0.0.1:5000;
}
server {
server_name example.org;
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/ssl/certs/example.org.crt;
ssl_certificate_key /etc/ssl/private/example.org.key;
location / {
proxy_pass http://serverA;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}
... HTTPS redirect
Aber jetzt ist doch nicht der Traffic von Server B also dem NGINX, auf den der Nutzer zugreift zu Server A, der Webapplikation verschlüsselt oder liege ich da falsch? Falls er nicht verschlüsselt ist, wie erreiche ich das? Ist hier eine einfache Firewall Regel auf Server A schon ausreichend? Im Sinne von
ufw allow in from 10.0.0.2 to any port 5000/tcp
Danke für alle Antworten