Passwortschutz für ein Verzeichnis mit Apache

Erfahren Sie, wie Sie ein Verzeichnis mit Hilfe der grundlegenden HTTP-Authentifizierung des Apache mit einem Passwort schützen können. Diese Methode ermöglicht es Ihnen, einen geschützten Bereich Ihrer Website einzurichten, der einen Benutzernamen und ein Passwort für den Zugriff erfordert.

Anforderungen

Cloud Server von IONOS

Vertrauen Sie auf flexibel skalierbare und zuverlässige Cloud Server auf hochverfügbarer Infrastruktur mit Standort Deutschland inklusive persönlichem Berater und minutengenauer Abrechnung - Sie zahlen also wirklich nur Ihre benötigten Ressourcen!

VMware Virtualisierung
Rest API
Unlimited Traffic

Erstellen der Passwort-Datei

Der erste Schritt besteht darin, eine Passwortdatei zu erstellen, mit der der Apache den Benutzernamen und das Passwort überprüft. Diese Datei wird.htpasswd genannt und an einem sicheren Ort abgelegt: /etc/apache2 auf Ubuntu 16.04, und /etc/httpd auf CentOS 7.

Mit dem Befehl htpasswd kann entweder eine Passwortdatei erstellt oder ein Eintrag hinzugefügt werden. Zum ersten Mal werden wir das Flag -c verwenden, um die Datei zu erstellen und den Benutzernamen jdoe hinzuzufügen:

  • CentOS 7: sudo htpasswd -c /etc/httpd/.htpasswd jdoe
  • Ubuntu 16.04: sudo htpasswd -c /etc/apache2/.htpasswd jdoe

Sie werden aufgefordert, das neue Passwort für den Benutzer einzugeben und zu bestätigen.

Hinzufügen eines neuen Benutzers zu einer bestehenden Datei

Um einen neuen Benutzer zu einer bestehenden Passwortdatei hinzuzufügen, verwenden Sie den gleichen Befehl ohne das Flag -c. Um zum Beispiel einen Benutzer janedoe hinzuzufügen, lautet der Befehl:

  • CentOS 7: sudo htpasswd /etc/httpd/.htpasswd janedoe
  • Ubuntu 16.04: sudo htpasswd /etc/apache2/.htpasswd janedoe

Sie werden aufgefordert, das neue Passwort für den Benutzer einzugeben und zu bestätigen.

Verzeichnisbeschränkung aktivieren

Bevor Sie ein Verzeichnis beschränken können, müssen Sie den Apache so konfigurieren, dass er .htaccess-Dateien erlaubt.

CentOS 7

Öffnen Sie die Hauptkonfigurationsdatei des Apache zur Bearbeitung mit dem Befehl:

sudo nano /etc/httpd/conf/httpd.conf

Scrollen Sie nach unten zum Abschnitt <Verzeichnis> für "/var/wwww/html" und ändern Sie AllowOverride auf All.

Speichern und beenden Sie die Datei. Starten Sie dann den Apache neu, damit die Änderungen wirksam werden:

sudo systemctl restart httpd

Ubuntu 16.04

Öffnen Sie die Hauptkonfigurationsdatei des Apache zur Bearbeitung mit dem Befehl:

sudo nano /etc/apache2/apache2.conf

Scrollen Sie nach unten zum Abschnitt <Verzeichnis> für "/var/www" und ändern Sie AllowOverride auf All.

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Speichern und beenden Sie die Datei. Starten Sie dann den Apache neu, damit die Änderungen wirksam werden:

sudo systemctl restart apache2

Erstellen des beschränkten Bereichs

Gehen Sie zu dem Verzeichnis, das Sie schützen möchten. Zum Beispiel:

cd /var/www/html/admin

Erstellen Sie eine Datei namens.htaccess und öffnen Sie sie zur Bearbeitung:

sudo nano .htaccess

Fügen Sie das Folgende in diese Datei ein:

CentOS 7:

AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/httpd/.htpasswd

Ubuntu 16.04:

AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/apache2/.htpasswd

Testen der Authentifizierung

Um die Authentifizierung zu testen, besuchen Sie die passwortgeschützte URL in einem Browser. Sie erhalten ein Popup-Fenster, in dem Sie aufgefordert werden, einen Benutzernamen und ein Passwort einzugeben, um fortzufahren.

Hinweis

Wenn Ihr Browser über einen Popup-Blocker verfügt, müssen Sie ihn so konfigurieren, dass er Popups für diese Domain zulässt.