Die Einrichtung einer Form der Passwortauthentifizierung für eine Website kann ein entscheidender Bestandteil der Freigabe von Inhalten für autorisierte Benutzer sein. In einem anderen Artikel besprechen wir, wie man genau das mit ein paar raffinierten .htaccess-Regeln erreichen kann. Wenn Sie mehr darüber lesen möchten, wie das geht, können Sie unseren Artikel lesen, in dem es um den Passwortschutz von Dateien und Verzeichnissen mit .htaccess geht. Vielleicht fragen Sie sich jedoch, wie diese Anmeldeinformationen überprüft werden und wo sie gespeichert werden. Die Antwort ist die .htpasswd-Datei, die im Mittelpunkt dieses Artikels steht.
Was ist .htpasswd?
Eine .htpasswd-Datei wird in der Regel verwendet, wenn eine Datei, ein Ordner oder eine ganze Website mit einem Kennwort geschützt werden soll, wobei die HTTP-Authentifizierung verwendet und Regeln in einer .htaccess-Datei implementiert werden. Die Benutzerdaten werden in separaten Zeilen gespeichert, wobei jede Zeile einen Benutzernamen und ein Passwort enthält, die durch einen Doppelpunkt (:) getrennt sind. Benutzernamen werden im Klartext gespeichert, während Passwörter in einem verschlüsselten Hash-Format gespeichert werden. Diese Verschlüsselung ist in der Regel MD5, obwohl sie unter Linux auch auf der Funktion crypt() basieren kann. Obwohl es möglich ist, die Passwortdatei nach Belieben zu benennen, wird davon dringend abgeraten, da der Apache so vorkonfiguriert ist, dass er standardmäßig .htpasswd verwendet, und Punktdateien (Dateien, die mit „.“ beginnen) sind im Allgemeinen versteckte Dateien.
Wie erstellt man eine .htpasswd-Datei?
Abhängig von Ihrer Plattform können Sie dies auf verschiedene Arten erreichen. Die einfachste Methode besteht darin, eine der verschiedenen Websites zur Erstellung von .htpasswd-Dateien aufzurufen und deren einfachen Anweisungen zu folgen, um die erforderlichen Einträge für eine .htpasswd-Datei zu generieren. Ich würde den von htaccesstools.com angebotenen Generator empfehlen, da er sehr einfach ist und auf den Punkt kommt: Htpasswd Generator. Wenn es Ihnen wie mir geht und Sie sehen möchten, wie man das ohne Generator macht, bleiben Sie hier!
Zuerst müssen Sie einen Benutzernamen im Kopf haben, für dieses Beispiel habe ich den Benutzernamen bob123 gewählt. Als Nächstes müssen Sie sich über SSH bei Ihrem Server anmelden. Wenn Sie nicht wissen, wie Sie über SSH auf Ihren Server zugreifen können, lesen Sie bitte den folgenden Artikel: Verbindung zu Ihrem Server über SSH. Abschließend führen Sie den folgenden Befehl aus. Beachten Sie bitte, dass Sie sudo verwenden müssen, wenn Sie diesen Befehl als Nicht-Root-Benutzer ausführen.
htpasswd -c /home/usernamehere/.htpasswd bob123
Sie werden aufgefordert, ein Passwort für diesen Benutzer anzugeben und zu bestätigen. Wenn Sie weitere Benutzer hinzufügen möchten, können Sie dies wie folgt tun:
htpasswd /home/usernamehere/.htpasswd newUser2
Wenn Sie den Inhalt der Datei .htpasswd überprüfen, sollten Sie etwas Ähnliches wie das Folgende sehen.
bob123:$apr1$FaPCZHMe$jYiw5.9UevKx25pBH4AsT/newUser2:$apr1$mrCHcVhc$oNdJeRcWKPk2z8dlzQI0x/