In kurzen Schritten soll hier erläutert werden, wie auf einem Windows System die htpasswd.exe genutzt werden kann. Die htpasswd.exe ist eine Kommandozeilenanwendung der Apache Software Foundation und ist in jeder Apache HTTP Server Installation unter Windows enthalten. Mit der htpasswd.exe läßt sich auf einfache Weise ein Paßwort bzw. eine Paßphrase für eine htaccess-Benutzerauthentifizierung an einem Apache HTTP Server erstellen.
Eine solche htaccess-Authentifizierung, siehe Abbildung 1, finden Sie auch auf schubiserv, zum Beispiel im Verzeichnis TreSor.
So ganz nebenbei, bitte beachten Sie, daß mittels htpasswd erzeugte Paßwörter/Paßphrasen nur für den AuthType Basic
verwendet werden können!
Für AuthType Digest nutzen Sie bitte htdigest.
AuthType was?
Sollte Ihnen diese Frage gerade durch den Kopf gehen, ist dies vielleicht der richtige Zeitpunkt um zu klären ob überhaupt das
richtige Modul zur Benutzerauthentifizierung vom Apache HTTP Server bereitgestellt wird.
Beispielsweise lautet für den Apache HTTP Server Version 2.2 die Bezeichnung des
entsprechenden Moduls mod_auth_basic.
Sollte Ihr Server bei Ihnen im Keller stehen ist zu erwarten, daß Sie den entsprechenden Eintrag in der httpd.conf finden
werden.
Liegen Ihre Webdokumente auf einem Server eines Hosting Rundum-Sorglos-Packets läßt sich wohl am einfachsten mittels dem
PHP-Befehl phpinfo() feststellen ob das Modul vorhanden ist.
Im Abschnitt apache2handler der PHP-Konfiguration, siehe
Abbildung 2, werden in der Zeile Loaded Modules die vom Apache
HTTP Server geladenen Module aufgezählt.
Hier sollte sich das zuvor genannte Modul finden.
Nachdem nun feststeht welches Modul auf dem Server läuft, sollten Sie sich zu jedem Benutzer ein sicheres Paßwort/Paßphrase
überlegen. Sehen Sie davon ab Ihr Standardpaßwort einzutippen!
Ich empfehle Ihnen die Verwendung einer Paßphrase.
Rufen Sie zunächst den Befehlszeileninterpreter mit Start -> Ausführen -> cmd [Enter]
auf. Wechseln Sie
anschließend in das Verzeichnis in der die htpasswd.exe liegt (diese finden Sie im Installationsverzeichnis des Apache
HTTP Server) und geben htpasswd
ein.
Möchten Sie es ganz bequem/einfach haben, so kopieren Sie unter Windows XP die htpasswd.exe in den Ordner C:\WINDOWS\system32 bzw. unter Windows Vista oder Windows 7 in den Ordner C:\Windows\system32. Von nun an steht Ihnen direkt nach Aufruf des Befehlszeileninterpreters der htpasswd Befehl zur Verfügung. Sie sparen sich zumindest hier den Verzeichniswechsel.
Es erscheint der in Abbildung 3 dargestellte Dialog, welcher Informationen zu htpasswd und deren Befehlsparametern liefert.
Grundsätzlich lassen sich zwei Verfahrensweisen unterscheiden.
Zwar unterscheiden sich beide Verfahren nur geringfügig in Ihren Befehlsparamtern, jedoch können Sie größeren Schaden erleiden, wenn Sie hierbei unachtsam vorgehen. An gegebener Stelle werde ich Sie nochmals darauf hinweisen.
Nachfolgend finden Sie Syntax und Beispiel um eine neue Paßwortdatei anzulegen und gleichzeitig einen Benutzer mit zugehörigem Paßwort zu erstellen.
htpasswd [-c] [Laufwerk:][Pfad] Benutzername
[-c]
Erstellen einer neuen Datei.
Im Umfeld von htpasswd stehen noch weitere Befehlsparameter zur Verfügung. Da hier diese zum Aufzeigen der wesentlichen Abläufe nicht benötigt werden, vernachlässigen wir diese.
Beispiel Schritt 1:
Die htpasswd.exe liegt im Verzeichnis C:\
vor. Mit dem Befehl -c
wird die Datei .htpasswd
im Verzeichnis D:\
erstellt.
Der Punkt zu beginn des Dateinamens .htpasswd
führt unter einem Linuxsystem (Serverstandard) dazu, daß
die Datei nicht angezeigt, quasi versteckt, wird. Mit dem frei gewählten Namen Anton
erstellen Sie Ihren
ersten Benutzer.
C:\>htpasswd -c D:\.htpasswd Anton
Beispiel Schritt 2:
Nach dem Sie Ihre bisherige Eingabe mit ENTER
bestätigen, werden Sie zur Eingabe eines Paßwortes/Paßphrase aufgefordet.
Quittieren Sie Ihre Paßworteingabe mit ENTER
und wiederholen diese Paßworteingabe erneut.
Eine fehlerhafte Eingabe wird Ihnen mit einer Fehlermeldung quittiert.
Sollte es Ihnen gelungen sein, daß Paßwort korrekt zu wiederholen, werden Sie nun im Verzeichnis D:\
die
Datei .htpasswd
vorfinden.
Mit einem Editor Ihrer Wahl können Sie diese Datei öffnen. Sie finden den Benutzernamen "Anton" gefolgt vom
MD5 (Standard unter Windows) verschlüsselten Paßwort.
Benutzername und Paßwort werden durch einen Doppelpunkt getrennt. Hier ein Beispiel wie die Einträge in einer Paßwortdatei
aussehen könnten:
Anton:$apr1$gU......$ZQE67tuE3s6EMBYEH1J/61 Pünktchen:$apr1$AX......$g6kwfcmFkIkx8K3Sn8r/E1
Listing 1
Die Paßwortdatei besteht bereits und weitere Benutzer sollen ergänzt werden.
Der Befehlssyntax entspricht dem wie unter Variante I, jedoch lassen Sie den Befehlsparameter -c
weg!
Der erneute Aufruf mit -c
würde dazu führen, daß die Datei .htpasswd erneut angelegt und eine
bereits vorhandene Datei überschrieben würde. Vorhandene Benutzer und deren Paßwörter wären verloren und müßten erneut
angelegt werden.
C:\>htpasswd D:\.htpasswd Anton
Die Übertragung über HTTP erfolgt ohne vorherige Verschlüsselung, wie
dies im AuthType Digest der Fall wäre. Der AuthType Basic ist so gesehen gegenüber dem AuthType Digest unsicherer, womit
eine AuthType Digest Authentifizierung vorzuziehen ist.
Jedoch beherrschen nicht alle Clients, sprich Webbrowser, den AuthType Digest. Unter Umständen würden Sie mit
Digest einzelne Nutzer von einer Paßwortauthentifizierung ausschließen.
Wie bereits erwähnt ist es nicht möglich Paßwörter/Paßphrasen die mit htpasswd erstellt wurden unter AuthType Digest zu nutzen.
Prüfen Sie bitte auch ob das Apache Module mod_auth_digest geladen ist, welches Sie für AuthType Digest benötigen!
Alternativ wäre denkbar, daß vor Eingabe des Paßwortes eine sichere Verbindung über HTTPS aufgebaut und so ein Auslesen erschwert würde.
In diesem Zusammenhang sind vielleicht folgende Hinweise hilfreich:
Beispiel einer Benutzerauthentifizierung an einem Apache HTTP Server:
Artikel der Apache Software Foundation (Apache HTTP Server Version 2.2):
Ausführungen der Apache Software Foundation zu htdigest:
Informationen zur IT-Sicherheit finden Sie in folgenden Artikeln :
Soweit nicht weiter angegeben steht der Inhalt aus »schubiserv | htpasswd«, von Florian Schubert, unter einer Creative Commons Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.
XHTML+RDFa 1.1 | CSS 3 | U.S. Section 508 | WCAG 1.0 | I18N | RDFa