htaccess Passwortschutz

Gepostet am 18 December 2013 in: webspace

Soll ein Verzeichnis oder der gesamte Webspace mit einem Passwort geschützt werden, bietet sich hierfür ein Passwortschutz mit der Apache Konfigurationsdatei .htaccess an.

Aber für was kann man denn so eine .htaccess-Datei benutzen? In der Datei können verschiedene Konfigurationsparameter von Apache angepasst werden, die dann für das jeweilige Verzeichnis gelten, in der diese Datei liegt (und dessen Unterverzeichnisse). Wie diese Datei für eine Passwortschutz aussehen muss, wir im folgenden Beschrieben.

Eine .htaccess-Datei benötigt für einen Passwortschutz die folgenden vier Zeilen:

AuthType Basic
AuthName "Administrationsbereich"
AuthUserfile /home/webpages/lima-city/username/html/.htpasswd
Require valid-user

In der ersten Zeile wird dem Webserver mitgeteilt, dass die Inhalte in diesem Ordner und dessen Unterordner mit einem Passwort geschützt werden sollen. In der darauf folgenden Zeile wird ein Name für diesen Bereich angegeben, anhand von diesem kann ein User unterscheiden, welches Kennwort er benötigt, falls es auf einem Webspace Beispielsweise mehrere geschützte Bereiche gibt.

Da der Webserver natürlich auch wissen muss, welche Benutzer es gibt, muss eine Datei angegeben werden in der die Benutzer zusammen mit dem zugehörigen Kennwort stehen, diese wird unter AuthUserfile referenziert. Dabei wird der absolute Pfad auf dem Server angegeben. Bei lima-city wäre das FTP-Hauptverzeichnis für den Benutzer username z.B. unter folgendem Pfad: /home/webpages/lima-city/username/html/. Wichtig ist hierbei, dass zwischen Groß- und Kleinschreibung unterschieden wird!

Als letztes muss man dem Server noch mitteilen, das ein gültiger User für den Zugriff erforderlich ist.

Und was kommt jetzt in die .htpasswd-Datei? In dieser Datei steht pro Zeile ein Benutze mit seinem Passwort in dem Format Username:Password, wobei das Passwort mit einem sogenannten Hash “verschlüsselt” ist. Um einen Hash zu erzeugen gibt es einige Tools, eines davon wird von mir in diesem Post angeboten:
.htpasswd-Generator