.htpasswd-Generator
Erstellt .htpasswd-Dateien für die HTTP-Basisauthentifizierung von Apache und Nginx sicher im Browser. Unterstützt bcrypt, APR1-MD5 und SHA-1. Passwörter werden niemals an den Server gesendet.
Was ist eine .htpasswd-Datei?
Eine .htpasswd-Datei ist eine reine Textdatei, in der pro Zeile ein Paar aus Benutzername und gehashtem Passwort im Format username:hash gespeichert wird. Apache und Nginx lesen diese Datei ein, um bei der HTTP-Basisauthentifizierung eingehende Anmeldedaten zu prüfen, bevor der Zugriff auf einen geschützten Bereich gewährt wird. Klassischerweise wird sie mit dem Kommandozeilenprogramm htpasswd direkt auf dem Server erzeugt oder aktualisiert. In vielen Situationen – etwa bei gemanagten Hosting-Umgebungen, restriktiven Shared-Hosting-Paketen ohne SSH-Zugang oder wenn schlicht kein Terminal griffbereit ist – ist dieser Weg jedoch unpraktisch oder gar nicht verfügbar.
Genau hier setzt dieses Tool an: Es erzeugt im Browser exakt dasselbe Dateiformat, ganz ohne Serverzugriff oder Installation zusätzlicher Software. Du kannst wählen, ob das eingegebene Passwort mit bcrypt, APR1-MD5 oder SHA-1 gehasht werden soll, und erhältst sofort die passende username:hash-Zeile zum Kopieren oder Herunterladen. Sämtliche Berechnungen laufen ausschließlich lokal per JavaScript in deinem Browser ab – das im Klartext eingegebene Passwort verlässt zu keinem Zeitpunkt deinen Rechner oder wird über das Netzwerk übertragen. Die fertige Datei solltest du anschließend außerhalb des DocumentRoot deines Servers ablegen und über die Konfigurationsdirektive AuthUserFile referenzieren, damit sie nicht versehentlich direkt per Browser abrufbar ist.
So erstellst du eine .htpasswd-Datei
- Benutzerzeile hinzufügen Klicke für jeden benötigten Benutzer auf „Benutzer hinzufügen“. Jede Zeile in der Tabelle entspricht später genau einem Benutzerkonto in der fertigen Datei.
- Benutzername und Passwort eingeben Trage für jede Zeile den gewünschten Benutzernamen und das zugehörige Passwort ein. Über das Augensymbol kannst du die Eingabe zur Kontrolle ein- und ausblenden.
- Algorithmus und Kostenwert wählen Wähle pro Zeile zwischen bcrypt, APR1-MD5 und SHA-1. Bei bcrypt lässt sich zusätzlich der Kostenwert (Berechnungsaufwand) anpassen, um Sicherheit und Rechenzeit auszubalancieren.
- Generieren Ein Klick auf „Generieren“ berechnet sofort alle Hashes im Browser. Direkt darunter erscheint eine Vorschau des vollständigen Inhalts der resultierenden .htpasswd-Datei.
- Kopieren oder herunterladen Kopiere das Ergebnis in die Zwischenablage oder lade es als fertige Datei herunter, um sie anschließend auf deinem Server abzulegen.
Tipps für die Nutzung
- bcrypt verwenden: Der sicherste verfügbare Algorithmus. Funktioniert mit Apache 2.4+ und Nginx. Höhere Kostenwerte verlangsamen die Hash-Berechnung und erhöhen die Widerstandsfähigkeit gegen Brute-Force-Angriffe (10 ist ein gängiger Standardwert).
- APR1-MD5 (
$apr1$) wird für die Kompatibilität mit Apache 2.2 oder älter benötigt und funktioniert mit praktisch allen Apache- und Nginx-Versionen. - SHA-1 (
{SHA}) hat eine geringe Kollisionsresistenz und wird nicht empfohlen. Nur in Legacy-Umgebungen verwenden, die Abwärtskompatibilität erfordern. - Platziere die .htpasswd-Datei außerhalb des
DocumentRoot, damit sie nicht direkt über das Web zugänglich ist. - Immer HTTPS verwenden. Basisauthentifizierungs-Anmeldedaten sind lediglich Base64-kodiert, nicht verschlüsselt, und werden über HTTP im Klartext übertragen.
Anwendungsfälle
Staging-Umgebungen vor dem Launch absichern
Eine noch nicht veröffentlichte Vorschauversion lässt sich mit wenigen Klicks per Basisauthentifizierung vor Suchmaschinen-Crawlern und unbefugten Dritten verbergen.
Interne Admin-Bereiche und Tools schützen
Selbst gebaute Verwaltungsoberflächen oder interne Werkzeuge ohne eigenes Login-System erhalten so im Handumdrehen einen einfachen Zugriffsschutz.
Zusätzliche Schutzschicht neben IP-Beschränkung
Wenn eine reine IP-Beschränkung nicht praktikabel ist, etwa weil Mitarbeitende von wechselnden Standorten aus zugreifen, ergänzt Basic Auth die Sicherheitsebene sinnvoll.
Nur bestimmte API-Endpunkte absichern
Über location- oder Directory-Direktiven lässt sich die Authentifizierung gezielt auf einzelne Pfade beschränken, während der restliche Dienst frei zugänglich bleibt.
Neue Benutzer zu einem laufenden Dienst hinzufügen
Für einen bereits produktiv laufenden Dienst genügt es, nur die zusätzliche Zeile für den neuen Benutzer zu generieren und an die bestehende Datei anzuhängen.
Glossar
- Basisauthentifizierung (Basic Authentication)
- Ein im HTTP-Standard definiertes Authentifizierungsverfahren. Benutzername und Passwort werden Base64-kodiert bei jeder Anfrage im
Authorization-Header mitgeschickt und serverseitig geprüft. - bcrypt
- Ein Passwort-Hash-Algorithmus mit eingebautem Salt. Der einstellbare Kostenfaktor sorgt dafür, dass die Berechnung auch mit schnellerer Hardware langsam genug bleibt, um Brute-Force-Angriffe zu erschweren. Aktuell die empfohlene Wahl.
- APR1-MD5
- Ein von Apache selbst entwickeltes, auf MD5 basierendes Hash-Format, erkennbar am Präfix
$apr1$. Es wird hauptsächlich aus Kompatibilitätsgründen mit älteren Apache-Versionen weiterverwendet. - SHA-1 ({SHA})
- Ein Hash-Format mit dem Präfix
{SHA}. Es verwendet keinen Salt und bietet nur eine geringe Kollisionsresistenz, weshalb es für neue Einrichtungen nicht mehr empfohlen wird. - Salt
- Eine zufällige Zeichenfolge, die vor der Hash-Berechnung an das Passwort angehängt wird. Dadurch ergibt selbst dasselbe Passwort bei jeder Erzeugung einen anderen Hash, was vorberechnete Rainbow-Table-Angriffe wirkungslos macht.
- DocumentRoot
- Das Verzeichnis, das ein Webserver als Wurzelverzeichnis öffentlich zugänglicher Dateien behandelt. Die .htpasswd-Datei muss außerhalb davon liegen, sonst könnte sie direkt über den Browser ausgelesen werden.
- AuthUserFile
- Eine Apache-Konfigurationsdirektive, die den Pfad zu der .htpasswd-Datei angibt, die für die Basisauthentifizierung herangezogen werden soll.
Häufige Fragen
.htaccess oder httpd.conf hinzu und gib in AuthUserFile den Pfad zur generierten .htpasswd-Datei an:AuthType Basic AuthName "Restricted Area" AuthUserFile /etc/apache2/.htpasswd Require valid-user
nginx.conf oder dem entsprechenden server-Block hinzu:location /admin {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}Nginx unterstützt sowohl bcrypt als auch APR1-MD5.Benutzername:Hash) einfach am Ende der vorhandenen Datei an. Jede Zeile steht für einen Benutzer. Leerzeilen und Zeilen, die mit # beginnen, werden ignoriert.
Übrigens – Warum Basic Auth trotz seines Alters weiter genutzt wird
Die HTTP-Basisauthentifizierung wurde 1999 in RFC 2617 definiert (aktualisiert durch RFC 7617). Das Prinzip ist denkbar einfach: Benutzername und Passwort werden mit : verbunden, Base64-kodiert und im Authorization-Header mitgesendet.
Genau diese Einfachheit erklärt ihre anhaltende Verbreitung: Sie ist ideal für Staging-Umgebungen, interne Tools oder als erste Verteidigungslinie in Kombination mit IP-Allowlists. Zwei bis drei Konfigurationszeilen reichen aus – keine zusätzliche Middleware oder Datenbank erforderlich.
Die Einschränkungen sind real: kein Logout-Mechanismus (die Sitzung bleibt bis zum Schließen des Browsers bestehen), keine eingebaute Passwortverwaltung und keine Mehrfaktor-Authentifizierung. Für Produktivdienste mit echten Sicherheitsanforderungen sind OAuth 2.0 oder OIDC die bessere Wahl.