reverseproxy, swag (einst letsencrypt), nginx, duckdns

Änderungsstand: 2020-09-26

26.09.2020: Letsencrypt wird ersetzt duch Swag.

15.07.2020: Diffie Hellman auf 4096 erhöht.

Ich erstelle einen klassischen NginX-Reverse-Proxy, SSL-gesichert, mit automatischer Generierung des Zertifikates vor Ablaufzeit und von aussen immer erreichbar. Und das Beste daran ist, dass man dafür nur 2 Apps benötigt. Ich realisisiere dies mit DuckDNS und Swag. DuckDNS sorgt dafür, dass immer die richtige IP-Adresse lokalisiert wird und Swag kümmert sich um die Bereitstellung des Zertifikates und bringt gleichzig auch NginX und Fail2ban mit. Somit hat man auch schon alles, was benötigt wird.

Dann erstelle ich ein zusätzliches Netwerk in der Console und nenne dieses reverseproxy-net:

docker network create reverseproxy-net

DuckDNS:

Hier geht’s zum Guide, um DuckDNS zu installieren.

Bevor ich nun Swag installiere, aktiviere ich noch die Portweiterleitung im Router. Diese wird benötigt, um das Zertifikat zu erstellen und um Zugriff auf die gewünschten Sachen zu haben, die man konfiguriert. Hier der Guide für die Fritz!Box 7590. Ich verwende für die Portweiterleitung den HTTP-Port 180 bis Port 180 (am Gerät) und 80 Port extern. Der HTTPS Port 443 bis Port 443 (am Gerät) und 443 Port extern. Achtung! Port 443 ist nicht austauschbar! Falls ein anderer Docker Port 443 beansprucht, muss man dort den Port ändern! Ich musste Pihole anpassen.

Letsencrypt (ab sofort Swag):

Auszug aus Overview (Übersetzung mit Google Translator):

SWAG – Secure Web Application Gateway ist eine Wiedergeburt unseres Docker-Images letsencrypt, eines vollwertigen Webservers und eines Reverse-Proxys, der Nginx, Php7, Certbot (Let’s Encrypt-Client) und Fail2ban umfasst.

Wenn Sie einen dynamischen DNS-Anbieter benötigen, können Sie den kostenlosen Anbieter duckdns.org verwenden, wobei die URL Ihre Subdomain.duckdns.org lautet und die Subdomains „www, ftp, cloud“ oder „wildcard“ sein können, wenn Sie die duckdns-Validierung verwenden. Der Container erkennt Änderungen an URLs und Subdomains, widerruft vorhandene Zertifikate und generiert beim Start neue.

Wenn Sie Ihre Websites mit einem Passwort schützen möchten, können Sie htpasswd verwenden. Führen Sie den folgenden Befehl auf Ihrem Host aus, um den Docker der Datei htpasswd file exec -it swag htpasswd -c /config/nginx/.htpasswd zu generieren.

Da bei DuckDNS auch Subdomains erlaubt sind, benötigen wir nur eine registrierte Domain. In meinem Fall ist das knilix. Ich nenne meine Subdomains test und test2. Erreichbar sind diese dann später unter test.knilix.duckdns.org und test2.knilix.duckdns.org. Bei NoIP funktioniert das in der kostenlosen Version NICHT!

  • „Apps“
  • Im Suchfeld swag eingeben
  • swag (linuxserver) auf Download-Symbol klicken
  • Gewünschte Einstellungen tätigen
  • Network Type: Custom : reversproxy-net
    • http: 180
    • https: 443
    • Email: eine gültige Email-Adresse
    • Domain Name: knilix.duckdns.org
    • Subdomain(s): test,test2
    • Only Subdomains: false
    • Validation: http
    • AppData Config Path: /mnt/user/appdata/swag
    • DuckDNS Token: DASTOKEN
  • „Apply“

Wenn fertig heruntergeladen,

  • „Done“ klicken
  • „Docker“
  • Autostart „ON“
    • Protokolldatei öffnen (hier sieht man den Status von LE)

Swag ist nun bereit und generiert auch schon für folgende Domains die Zertifikate:

  • knilix.duckdns.org
  • test.knilix.duckdns.org
  • test2.knilix.duckdns.org

Aufruf im Browser: knilix.duckdns.org und/oder test.knilix.duckdns.org und/oder test2.knilix.duckdns.org

Automatisch wird zu http s verbunden und die Willkommensseite von NginX erscheint (Welcome to our server).

Im Verzeichnis „/appdata/swag/www“ kann nun eine selbsterstellte Website hinzugefügt werden, die z.B. über diese Adresse (knilix.duckdns.org) erreichbar ist. Natürlich verschlüsselt. Weiterhin können über „/appdata/swag/nginx/proxy-confs“ weitere Szenarien definiert werden.

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten