Ihr habt einen Server, dort laufen etliche Webserver, zu jeder VM habt ihr eine eigene Domain und ihr wollt natürlich, das diese Webseiten alle öffentlich erreichbar sind per HTTPS. Genau das erledigt für euch der NPM Reverse Proxy. NPM kümmert sich automatisch um die Beantragung und Erneuerung der SSL-Zertifikate von Let's Encrypt, sodass eure Webseite immer sicher erreichbar ist.
👉 Ziel: HTTPS als Standard im ganzen Web etablieren
Client -----> DNS-Registrar ------> 🛡️WAN IP ------> NPM --> Webserver
(Laptop) (z.B. Cloudflare) 🛡️(Fritzbox) (Server) (VM)
Zuerst müssen ihr die DynDNS-Einstellungen in eurer Fritzbox konfigurieren, um eine kostenlose DynDNS-Adresse zu erhalten.
Annleitung AVM
Hat alles funktioniert dann haben ihr eine kostenlose DynDNS-Adresse. Ihr benötigt nur das zwischen https:// und :45296(Port), z.B. 12345678.myfritz.net. Als Test könnt ihr die Adresse Auflössen und müsst eure aktuelle WAN IP zurückbekommen.
# Aktuelle WAN IP abfragen
curl ifconfig.me
217.80.200.123%
# DynDNS Adresse auflösen
dig abcdefghijkm.myfritz.net
; <<>> DiG 9.20.11-1ubuntu2.2-Ubuntu <<>> abcdefghijkm.myfritz.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26718
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;abcdefghijkm.myfritz.net. IN A
;; ANSWER SECTION:
abcdefghijkm.myfritz.net. 30 IN A 217.80.200.123
...
# DynDNS zeigt auf WAN, passt also !
Danach müsst ihr nur noch bei einem Registrar eure DynDNS-Adresse eintragen und per Cname mit der Domain verknüpfen.
Die Installation von NPM ist relativ einfach und kann mit Docker und Docker Compose durchgeführt werden.
Hier ist eine Schritt-für-Schritt-Anleitung zur Installation von NPM:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
environment:
TZ: "Europe/Berlin"
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
docker compose up -d
http://<ServerIP>:81
SSL Zertfikate werden nicht erstellt beim Speichern (save):
Port 80 in der Firewall ist blockiert...
Webseiten erscheinen nicht:
Prüft die interne IP-Adresse und den Port eures Webservers, auf den der Proxy weiterleiten soll...
Webseiten Anpassungen werden nicht angezeigt:
Cache Assets deaktivieren