Passwortauthentifizierung mit NGINX einrichten
Erfahren Sie, wie Sie ein einfaches HTTP-Authentifizierungssystem einrichten. Auf diese Weise können Sie bestimmte Verzeichnisse auf Ihrer Website mit einem Passwort schützen. Diese Form des Passwortschutzes ist ein schneller und einfacher Weg, um ein grundlegendes Sicherheitsniveau über die Zugangsberechtigung zu einer Website zu erreichen.
Anforderungen
- Ein Server unter Linux (Ubuntu 16.04 oder CentOS 7)
- NGINX installiert und läuft.
Dank Startguthaben testen Sie Cloud Server bei IONOS 1 Monat lang kostenlos (oder bis das Guthaben verbraucht ist) und erleben die perfekte Kombination aus Leistung und Sicherheit!
Erstellen der Passwort-Datei mit OpenSSH
Auf Ihrem Server wird höchstwahrscheinlich bereits OpenSSH installiert sein. Wenn nicht, können Sie es mit den folgenden Befehlen installieren:
CentOS 7:
sudo yum install openssh openssh-server openssh-clients openssl-libs
Ubuntu 16.04:
sudo apt-get install openssh-server
Verwenden Sie den folgenden Befehl, um eine Datei namens.htpasswd im Verzeichnis /etc/nginx zu erstellen:
sudo sh -c "echo -n '[username]:' >> /etc/nginx/.htpasswd"
Um beispielsweise den Benutzer jdoe hinzuzufügen, lautet der Befehl:
sudo sh -c "echo -n 'jdoe:' >> /etc/nginx/.htpasswd"
Fügen Sie dann mit dem Befehl ein Passwort für diesen Benutzer hinzu:
sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"
Sie werden aufgefordert, das Passwort zweimal einzugeben, um es zu bestätigen.
- In nur drei einfachen Schritten
- Inklusive E-Mail-Adresse und SSL-Zertifikat
- Ohne Umzugskosten
Einrichten der Passwortauthentifizierung in NGINX
Der nächste Schritt ist das Hinzufügen der Kennwortauthentifizierungsanweisungen zur NGINX-Konfigurationsdatei für die Domain, in der Sie Joomla installieren.
Die Konfigurationsdatei der Domain befindet sich bei CentOS7 in /etc/nginx/conf.d und bei Ubuntu 16.04 in /etc/nginx/sites- .
Diese Datei bearbeiten:
CentOS 7:
sudo nano /etc/nginx/conf.d/example.com.conf
Ubuntu 16.04:
sudo nano /etc/nginx/sites-available/example.com.conf
Fügen Sie folgende Zeilen zu dieser Datei hinzu:
auth_basic "Password Required";
auth_basic_user_file /etc/nginx/.htpasswd;
Diese beiden Direktiven stellen eine grundlegende Passwort-Beschränkung für das angegebene Verzeichnis dar. NGINX bietet viele Möglichkeiten, den Passwortschutz für verschiedene Dateien und Verzeichnisse einzurichten, einschließlich der Möglichkeit, nach Dateityp zu filtern. Wenn Sie ein komplizierteres System für den Passwortschutz einrichten möchten, lesen Sie die offizielle NGINX-Dokumentation für weitere Details.
Um die gesamte NGINX-Location zu schützen, fügen Sie die Anweisungen in den bestehenden Location Command Block ein. Wenn kein Location Command Block vorhanden ist, fügen Sie einen hinzu:
location / {
auth_basic "Password Required";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Wenn Sie ein Unterverzeichnis mit einem Passwort schützen möchten, geben Sie stattdessen dieses Verzeichnis an:
location /admin {
auth_basic "Password Required";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Achten Sie darauf, dass Sie diesen Location Block innerhalb des Server-Block hinzufügen. Zum Beispiel, wenn Ihre Konfigurationsdatei so aussieht:
server {
listen 80;
server_name example.com;
root /usr/share/nginx/example.com/html/;
index index.php index.html index.htm;
}
Nachdem Sie den neuen Abschnitt hinzugefügt haben, sieht er so aus:
server {
listen 80;
server_name example.com;
root /usr/share/nginx/example.com/html/;
index index.php index.html index.htm;
location / {
auth_basic "Password Required";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Speichern und beenden Sie die Datei und starten Sie NGINX neu:
sudo nginx -s reload
Um die Konfiguration zu testen, besuchen Sie die URL in einem Browser. Wenn die Konfiguration korrekt eingerichtet ist, wird eine Popup-Meldung angezeigt, in der Sie aufgefordert werden, den Benutzernamen und das Passwort einzugeben.
- Verschlüsselt Webseiten-Kommunikation
- Verhindert Sicherheits-Warnungen
- Verbessert Google-Platzierung