EQVPS

Einen nginx-Reverse-Proxy mit HTTPS einrichten

Setzen Sie eine saubere Domain und automatisches HTTPS vor jede App, die auf einem lokalen Port lauscht. Zwei Wege: nginx mit Certbot oder Caddy für automatisches TLS in einer Zeile. Schritt für Schritt, mit kopierfertiger Konfiguration.

Die meisten selbstgehosteten Apps lauschen auf einem lokalen Port wie 127.0.0.1:3000 und sprechen einfaches HTTP. Ein Reverse-Proxy steht davor auf den Ports 80/443, terminiert HTTPS mit einem echten Zertifikat und leitet den Verkehr an diesen lokalen Port weiter — er gibt Ihnen ein sauberes https://app.yourdomain.com und erlaubt, mehrere Apps hinter einer IP zu betreiben. Hier sind die beiden gängigen Wege.

Voraussetzungen

Variante A — Caddy (automatisches HTTPS, eine Zeile)

sudo apt install -y caddy
echo 'app.yourdomain.com { reverse_proxy 127.0.0.1:3000 }' | sudo tee /etc/caddy/Caddyfile
sudo systemctl restart caddy

Das war's — Caddy holt ein Let's-Encrypt-Zertifikat für die Domain und erneuert es automatisch.

Variante B — nginx + Certbot

sudo apt install -y nginx certbot python3-certbot-nginx

Erstellen Sie /etc/nginx/sites-available/app:

server {
    listen 80;
    server_name app.yourdomain.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
        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 $scheme;
    }
}

Aktivieren Sie sie und fügen Sie HTTPS hinzu:

sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d app.yourdomain.com

Certbot passt die Konfiguration an, um HTTPS auszuliefern, und richtet die automatische Erneuerung ein.

Ehrliche Warnungen

Nächste Schritte

Der Reverse-Proxy ist genau das, was einen einzelnen Server viele Dinge ausliefern lässt — siehe mehrere Dienste hinter einer IP selbst hosten. Betreiben Sie die App in einem Container? Beginnen Sie mit wie man Docker installiert. Damit die App selbst Neustarts und Abstürze übersteht, siehe wie man einen systemd-Dienst erstellt.

FAQ

Was ist ein Reverse-Proxy und warum brauche ich einen?

Ihre App lauscht meist auf einem lokalen Port wie 127.0.0.1:3000. Der Reverse-Proxy steht davor auf den Ports 80/443, terminiert HTTPS und leitet Anfragen an diesen lokalen Port weiter. Er gibt Ihnen eine saubere Domain, ein gültiges TLS-Zertifikat und die Möglichkeit, mehrere Apps hinter einer IP zu betreiben — ohne dass die App selbst etwas davon leisten muss.

nginx oder Caddy — was soll ich wählen?

Caddy ist der schnellste Weg: Es holt und erneuert Let's-Encrypt-Zertifikate automatisch, und ein funktionierender HTTPS-Proxy ist eine Zeile Konfiguration. nginx ist bekannter und flexibler, aber für TLS ergänzen Sie Certbot. Wollen Sie HTTPS mit minimalem Aufwand, nehmen Sie Caddy; kennen Sie nginx schon oder brauchen dessen Funktionen, nehmen Sie nginx.

Brauche ich eine Domain?

Für ein vertrauenswürdiges HTTPS-Zertifikat ja — Let's Encrypt stellt Zertifikate für Domainnamen aus, nicht für nackte IPs. Zeigen Sie einen A-Eintrag auf die IP Ihres Servers, warten Sie die DNS-Verbreitung ab, und der Proxy kann ein Zertifikat für diesen Namen holen.

Welche Ports müssen offen sein?

80 und 443 eingehend. Port 80 dient der ersten Zertifikatsprüfung und der Weiterleitung auf HTTPS; 443 liefert den verschlüsselten Verkehr aus. Öffnen Sie beide in Ihrer Firewall (siehe UFW-Leitfaden) und stellen Sie sicher, dass nichts anderes sie bereits belegt.

Warum schlägt die Zertifikatsausstellung fehl?

Fast immer DNS oder Ports. Der A-Eintrag der Domain muss auf diesen Server zeigen und verbreitet sein, und die Ports 80/443 müssen erreichbar sein (in der Firewall offen, nicht vorgelagert blockiert). Korrigieren Sie diese beiden, und die Ausstellung gelingt; Caddy wie Certbot versuchen es erneut.

Kommentare

Noch keine Kommentare. Sei der Erste.

Kommentar hinterlassen

Kommentare werden vor der Anzeige moderiert.