So schützen Sie Webverzeichnisse in Nginx mit einem Passwort
Manager von Webprojekten müssen ihre Arbeit oft auf die eine oder andere Weise schützen. Oft fragen sich die Leute, wie sie ihre Website mit einem Passwort schützen können, während sie sich noch in der Entwicklung befindet.
In diesem Tutorial zeigen wir Ihnen eine einfache, aber effektive Technik, wie Sie ein passwortgeschütztes Webverzeichnis erstellen können, wenn Sie Nginx als Webserver ausführen.
Falls Sie einen Apache-Webserver verwenden, können Sie unsere Anleitung zum Passwortschutz eines Webverzeichnisses lesen:
- Passwortschutz für Webverzeichnisse in Apache
Anforderungen
Zum Ausführen der Schritte in diesem Tutorial benötigen Sie Folgendes:
- Nginx-Webserver installiert
- Root-Zugriff auf den Server
Schritt 1: Benutzer und Passwort erstellen
1. Um unser Webverzeichnis mit einem Passwort zu schützen, müssen wir die Datei erstellen, die unseren verschlüsselten Benutzernamen und unser Passwort enthält.
Wenn Sie Apache verwenden, können Sie das Dienstprogramm "htpasswd" verwenden. Wenn Sie dieses Dienstprogramm auf Ihrem System installiert haben, können Sie den folgenden Befehl verwenden, um die Kennwortdatei zu generieren:
# htpasswd -c /path/to/file/.htpasswd username
Wenn Sie diesen Befehl ausführen, werden Sie aufgefordert, ein Passwort für den obigen Benutzer festzulegen, und danach wird die .htpasswd-Datei im angegebenen Verzeichnis erstellt.
2. Wenn Sie dieses Tool nicht installiert haben, können Sie die .htpasswd-Datei manuell erstellen. Die Datei sollte die folgende Syntax aufweisen:
username:encrypted-password:commentDer Benutzername, den Sie verwenden werden, hängt von Ihnen ab, wählen Sie, was Sie möchten.
Der wichtigere Teil ist die Art und Weise, wie Sie das Passwort für diesen Benutzer generieren.
Schritt 2: Verschlüsseltes Passwort generieren
3. Um das Passwort zu generieren, verwenden Sie die in Perl integrierte "crypt"-Funktion.
Hier ist ein Beispiel für diesen Befehl:
# perl -le 'print crypt("your-password", "salt-hash")'
Ein Beispiel aus der Praxis:
# perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'
Öffnen Sie nun eine Datei und geben Sie Ihren Benutzernamen und den generierten in eine Zeichenkette ein, getrennt durch Semikolon.
So geht's:
# vi /home/tecmint/.htpasswd
Geben Sie Ihren Benutzernamen und Ihr Passwort ein. In meinem Fall sieht es so aus:
tecmint:1xV2Rdw7Q6MK.
Speichern Sie die Datei, indem Sie auf "Esc" gefolgt von ":wq" klicken.
Schritt 3: Aktualisieren der Nginx-Konfiguration
4. Öffnen und bearbeiten Sie nun die Nginx-Konfigurationsdatei, die mit der Site verknüpft ist, an der Sie arbeiten. In unserem Fall verwenden wir die Standarddatei unter:
# vi /etc/nginx/conf.d/default.conf [For CentOS based systems]
OR
vi /etc/nginx/nginx.conf [For CentOS based systems]
vi /etc/nginx/sites-enabled/default [For Debian based systems]
In unserem Beispiel schützen wir das Verzeichnisstammverzeichnis für nginx mit einem Passwort, das lautet: /usr/share/nginx/html.
5. Fügen Sie nun den folgenden Abschnitt mit zwei Zeilen unter dem Pfad hinzu, den Sie schützen möchten.
auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;
Speichern Sie nun die Datei und starten Sie Nginx neu mit:
# systemctl restart nginx
OR
service nginx restart
6. Kopieren Sie nun diese IP-Adresse in Ihren Browser und Sie sollten nach dem Passwort gefragt werden:
Das wars! Ihr Hauptwebverzeichnis ist jetzt geschützt. Wenn Sie den Passwortschutz auf der Website entfernen möchten, entfernen Sie einfach die beiden Zeilen, die Sie gerade zur .htpasswd-Datei hinzugefügt haben, oder verwenden Sie den folgenden Befehl, um den hinzugefügten Benutzer aus einer Passwortdatei zu entfernen.
# htpasswd -D /path/to/file/.htpasswd username





