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
- Ein Cloud Server unter Linux (CentOS 7 oder Ubuntu 16.04).
- Apache Webserver installiert und läuft.
- On-Demand skalierbar, Load Balancer und Traffic inklusive
- Hochverfügbare Server-Plattform
- ISO-zertifizierte Rechenzentren am Standort Deutschland
- Inkl. 100,- € Startguthaben im 1. Monat
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.
Wenn Ihr Browser über einen Popup-Blocker verfügt, müssen Sie ihn so konfigurieren, dass er Popups für diese Domain zulässt.