Skip to main content
CheckTown
Dev-Tools

htpasswd-Generator: Basic Authentication für Apache und Nginx

Veröffentlicht 5 Min. Lesezeit
In diesem Artikel

Was ist htpasswd?

Eine htpasswd-Datei ist eine dateibasierte Datenbank, die von Apache- und Nginx-Webservern verwendet wird, um Benutzernamen und gehashte Passwörter für die HTTP-Basic-Authentifizierung zu speichern. Jede Zeile enthält einen Benutzernamen und einen Passwort-Hash, getrennt durch einen Doppelpunkt, etwa admin:$2y$10$abc... Die Datei bietet eine einfache Möglichkeit, Web-Ressourcen zu schützen, ohne ein vollständiges Authentifizierungs-Backend zu benötigen.

Das htpasswd-Dienstprogramm war ursprünglich Teil des Apache-HTTP-Server-Projekts, doch das Dateiformat hat sich zu einem De-facto-Standard entwickelt, der von vielen Webservern, Reverse-Proxys und Entwicklungswerkzeugen unterstützt wird. Moderne htpasswd-Generatoren unterstützen mehrere Hash-Algorithmen, darunter bcrypt, SHA-1 und MD5, wobei bcrypt aus Sicherheitsgründen die empfohlene Wahl ist.

So funktioniert die htpasswd-Erzeugung

Das Erzeugen eines htpasswd-Eintrags umfasst das Hashen eines Klartext-Passworts mit einem gewählten Algorithmus und dessen Formatierung zusammen mit dem Benutzernamen. Die Stärke des resultierenden Hashes hängt vom Algorithmus und seiner Konfiguration ab.

  • bcrypt ($2y$) – die sicherste Option, verwendet einen konfigurierbaren Kostenfaktor (Standard 10), der steuert, wie rechenaufwendig jeder Hash ist, und macht Brute-Force-Angriffe dadurch unpraktikabel
  • SHA-1 ({SHA}) – erzeugt einen Base64-codierten SHA-1-Digest mit dem Präfix {SHA}; schneller als bcrypt, aber deutlich schwächer gegen moderne GPU-basierte Angriffe
  • MD5 ($apr1$) – Apaches eigene MD5-Variante mit zufälligem Salt; ein Altformat, das noch unterstützt wird, aber aufgrund bekannter Schwächen nicht für neue Deployments empfohlen wird

Kostenlos testen – keine Registrierung erforderlich

htpasswd-Eintrag erzeugen →

Häufige Verwendungszwecke für htpasswd

htpasswd-basierte Authentifizierung wird häufig für leichtgewichtige Zugriffskontrolle eingesetzt, wo ein vollständiges Authentifizierungssystem überdimensioniert wäre.

  • Schutz von Staging-Sites – beschränken Sie den Zugriff auf Vorproduktionsumgebungen, sodass nur Teammitglieder und Stakeholder laufende Arbeiten einsehen können
  • Sicherheit von Admin-Panels – fügen Sie eine zusätzliche Authentifizierungsebene vor CMS-Admin-Panels, Datenbankverwaltungswerkzeugen oder Monitoring-Dashboards hinzu
  • Zugriff auf Entwicklungsumgebungen – schützen Sie lokale oder gemeinsam genutzte Entwicklungsserver vor unbefugtem Zugriff, ohne OAuth oder LDAP einzurichten

Häufig gestellte Fragen

Sollte ich bcrypt, SHA-1 oder MD5 für htpasswd verwenden?

Verwenden Sie nach Möglichkeit immer bcrypt. Bcrypt ist speziell für das Passwort-Hashing konzipiert und verfügt über einen konfigurierbaren Kostenfaktor, der es widerstandsfähig gegen Brute-Force-Angriffe macht. SHA-1 und MD5 sind schnelle Hash-Funktionen, die nicht für Passwörter ausgelegt sind – sie lassen sich um Größenordnungen schneller knacken als bcrypt. Einige ältere Apache-Versionen unterstützen bcrypt möglicherweise nicht, jede moderne Installation jedoch schon.

Wo sollte ich die htpasswd-Datei auf meinem Server ablegen?

Speichern Sie die htpasswd-Datei außerhalb Ihres Web-Roots, um zu verhindern, dass sie an Besucher ausgeliefert wird. Ein gängiger Speicherort ist /etc/apache2/.htpasswd oder /etc/nginx/.htpasswd. Referenzieren Sie sie anschließend in Ihrer Serverkonfiguration mit AuthUserFile (Apache) oder auth_basic_user_file (Nginx). Legen Sie sie niemals in einem öffentlich zugänglichen Verzeichnis ab.

Ist die HTTP-Basic-Authentifizierung sicher genug für den Produktivbetrieb?

Die Basic-Authentifizierung sendet Anmeldedaten bei jeder Anfrage als Base64-codierten Text (nicht verschlüsselt), daher muss sie stets über HTTPS eingesetzt werden. Selbst mit HTTPS fehlen ihr Funktionen wie Sitzungsverwaltung, Ratenbegrenzung und Kontosperrung. Sie eignet sich für risikoarme Szenarien wie Staging-Sites oder interne Werkzeuge, doch die produktive Authentifizierung für Endnutzer sollte ein vollwertiges Auth-System mit token-basierten Sitzungen verwenden.

Verwandte Tools