In einigen Fällen ist es sinnvoll, den Zugriff auf vestimmte Verzeichnisse einer Website nur für bestimmte Nutzer zu erlauben. Die einfachste Möglichkeit für einen Passwortschutz ist die sog. HTTP Base Auth. Dabei wird dem Benutzer beim besuch einer bestimmten URL vom Browser ein Eingabefenster für Benutzername und Passwort angezeigt. Stimmen die Daten überein bzw sind im System vorhanden, wird der Zugriff ermöglicht – ansonsten wird er abgewiesen.
Die Benutzer-Passwort Kombinationen werden in eine externe Datei geschrieben und mit dem Tool „htpasswd“ generiert. Für Ubuntu Server muss dazu vorher das Paket „apache2-utils“ installiert werden:
sudo apt-get install apache2-utils
(Ja, das Paket ist für Apache gedacht, funktioniert aber auch im Zusammenspiel mit Nginx ;) )
mit htpasswd wird jetzt der Zugang für Benutzer „user1“ erstellt und in die Zugangsberechtigungsdatei unter /etc/nginx/geheim.htpasswd geschrieben:
sudo htpasswd -c /etc/nginx/geheim.htpasswd user1
Danach wird das gewünschte Passwort für diesen Benutzer 2x eingegeben. Mit jedem weiteren Benutzer wird genauso verfahren.
Schließlich muss die Nginx-Konfiguration noch angepasst werden, damit eine Passwortabfrage ausgeführt wird:
server { server_name server.tld; listen 80 default_server; listen [::]:80 default_server; root /var/www; location /geheim { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/geheim.htpasswd; } }
Der Webserver wird nach der Konfigurationsänderung neu gestartet und beim nächsten Zugriff werden Benutzername und Passwort abgefragt.
https://blog.tausys.de
Unbedingt dazu erwähnt werden sollte, dass bei HTTP Benutzername und Passwort unverschlüsselt übertragen werden. Böswillige Schnüffler an der Leitung können diese ganz einfach auslesen. Zugangsdaten sollten (genauso wie Adresse und Bankverbindung bei einer Bestellung) über HTTPS übertragen werden.
Danke für den Beitrag hat mir sehr geholfen ;-)