website-passwortschutz

Änderungsstand: 2023-04-10

10.04.2023: Im „NginX Proxy Manager“ unter „Access Lists“ ist diese Funktion bereits integriert.

26.09.2020: Letsencrypt wurde durch Swag ersetzt und der Guide angepasst.

28.06.2020 Guide wurde überarbeitet. Jetzt mit Anlegen einer Proxy-Confs-Subdomain. Funktioniert bestens.

Ich möchte nun, dass beim Aufruf meiner Adresse knilix.duckdns.org, bei dem der Zugriff auf meiner eigenen Website auf meinen Server (kein WordPress), ein Passwortschutz erscheint, weil ich paranoid bin 🙂 . Natürlich nicht. Ich möchte demonstrieren, wie das funktioniert. Ich werde ein Passwortfile genererieren, mit dem Benutzernamen knilix. Folgenden Befehl (im Unraid-Terminal) verwendete ich bei Letsencrypt-Docker dafür:

docker exec -it swag htpasswd -c /config/nginx/.htpasswd knilix

Jetzt das Passwort eingeben und Passwort zur Bestätigung nochmals eingeben.

Möchte man jetzt weitere Benutzer mit separaten Passwörtern hinzufügen, dann diesen Befehl ohne (-c) verwenden. -c steht für create und darf für weitere Benutzer nicht mehr verwendet werden, da die Datei sonst neu erstellt werden würde und vorhandene Benutzer nicht mehr vorhanden wären. Bsp.:

docker exec -it swag htpasswd /config/nginx/.htpasswd knilixzwei

Jetzt eine neue Subdomain.conf erstellen (knilixz ist meine eingetragene Domain bei DuckDNS, Port 80 ist mein http-Port für NginX-Webserver, der in einer VM läuft, mit der IP-Adresse 192.168.252.69):

nano /mnt/user/appdata/swag/nginx/proxy-confs/mywebsite.subdomain.conf
server {
    listen 443 ssl;
    listen [::]:443 ssl;
 
    server_name knilixz.*;
 
    include /config/nginx/ssl.conf;
    client_max_body_size 0;
 
    location / {
        ## enable the next two lines for http auth
        auth_basic "Restricted";
        auth_basic_user_file /config/nginx/.htpasswd;
 
        resolver 127.0.0.11 valid=30s;
        set $upstream_app 192.168.252.69;
        set $upstream_port 80;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
 
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
    }
}

STRG-x, y, Enter

Der Resolver in Zeile 15 kann bei Euch anders sein. Dafür bitte in irgendeiner vorgegebenen *.subdomain.conf.sample im Verzeichnis

/mnt/user/appdata/swag/nginx/proxy-confs/

nachschauen, wie der eigene Wert ist. Hat man den eigenen Wert herausgefunden, ist der bei allen Subdomain.conf-Einträgen identisch.

Jetzt wird bei Aufruf von knilixz.duckdns.org eine Umleitung zu http s erzwungen und ein Passwort abgefragt. Nach Eingabe des Passwortes gelangt man auf meiner selbst erstellten Website, die auf einer VM untergebracht ist.

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten