Um einen eigenen Server mit Nginx Proxy Manager (NPM) über Cloudflare erreichbar zu machen, eine Subdomain zu nutzen und SSL zu aktivieren, sind folgende Schritte notwendig. Diese Anleitung setzt voraus, dass Cloudflare bereits die Nameserver Ihrer Domain verwaltet.
1. Cloudflare DNS-Einstellungen
Zuerst muss Cloudflare wissen, wohin die Anfragen für Ihre Subdomain geleitet werden sollen.
Loggen Sie sich bei Cloudflare ein und wählen Sie Ihre Domain aus.
Gehen Sie auf DNS > Records.
Klicken Sie auf Add record.
Typ: A (oder CNAME, wenn Sie eine DDNS-Adresse nutzen).
Name: Ihre gewünschte Subdomain (z.B. app für app.ihredomain.de).
IPv4 address: Die öffentliche IP-Adresse Ihres Heimnetzwerks/Servers.
Proxy status: Stellen Sie dies zunächst auf DNS only (graue Wolke). Hinweis: Das ist wichtig, damit der SSL-Zertifikat-Request in Schritt 3 funktioniert. Später können Sie es auf „Proxied" (orange Wolke) umstellen.
Speichern Sie den Eintrag.
2. SSL-Zertifikat in NPM erstellen (Let's Encrypt + Cloudflare)
Um ein valides SSL-Zertifikat zu erhalten, nutzt man am besten die "DNS-01 Challenge", da dies auch mit aktivierter "Orange Cloud" (Proxy) funktioniert.
3. Proxy Host im NPM einrichten
Gehen Sie in NPM auf Hosts > Proxy Hosts > Add Proxy Host.
Domain Names: app.ihredomain.de.
Scheme: http (oder https, wenn Ihr interner Dienst bereits SSL nutzt).
Forward Hostname/IP: Die interne IP des Zieldienstes (z.B. 192.168.1.50).
Forward Port: Der interne Port des Dienstes (z.B. 8080).
Aktivieren Sie Block Common Exploits.
Gehen Sie auf den Reiter SSL, wählen Sie das in Schritt 3 erstellte Zertifikat aus und aktivieren Sie Force SSL.
5. Finale Cloudflare-Einstellung (Optional, empfohlen)
Gehen Sie in Cloudflare zu SSL/TLS > Overview.
Stellen Sie den Verschlüsselungsmodus von "Flexible" auf Full (Strict). Dies sorgt dafür, dass die Verbindung zwischen Cloudflare und Ihrem Server vollständig verschlüsselt ist.
Optional: Schalten Sie nun den Proxy-Status (Wolke) im DNS-Eintrag auf orange, um die IP Ihres Servers zu verbergen. cs# Dieser Schritt machte meinen Server unerreichbar!
Zusammenfassung der Daten
| Bereich | Einstellung | Wert |
| DNS | Type | A Record |
| DNS | Name | subdomain |
| DNS | Content | Ihre Öffentliche IP |
| DNS | Proxy | DNS Only (Initial) -> Proxied |
| NPM | SSL | Let's Encrypt (DNS Challenge) |
| SSL/TLS | Mode | Full (Strict) |