Mit htaccess und htpasswd eine Website mit Passwort schützen – Wartungsmodus, Zugriffsbeschränkung und Alternativen

So aktivierst du einen sicheren Wartungsmodus und beschränkst den Zugriff für ausgewählte Nutzer

Wenn man Webseiten entwickelt, Inhalte überarbeitet oder einem Kunden eine neue Seite vorab zeigen möchte, sollte diese nicht für alle Besucher öffentlich zugänglich sein. Eine einfache und sehr verbreitete Lösung ist der Passwortschutz über htaccess und htpasswd. Dieser Schutz funktioniert serverseitig und verhindert, dass Besucher ohne Zugangsdaten überhaupt Inhalte der Website sehen.

In diesem Beitrag erkläre ich dir Schritt für Schritt, wie der Passwortschutz funktioniert, wann er sinnvoll ist, welche Vor- und Nachteile er hat und welche Alternativen es gibt. Am Ende bist du in der Lage, deine Website oder einzelne Unterordner mit htaccess zu schützen und weißt, wie du das sicher und korrekt einrichtest.

Was ist eine htaccess Datei?

Die htaccess Datei ist eine Konfigurationsdatei, die hauptsächlich mit Webservern wie Apache und LiteSpeed genutzt wird. Sie befindet sich im Ordner deiner Website und ermöglicht es, serverseitige Einstellungen vorzunehmen, ohne die Hauptkonfiguration des Webservers anzupassen.

Typische Funktionen der htaccess Datei:

  • Passwortschutz aktivieren
  • Weiterleitungen und Rewrite Regeln erstellen
  • Caching Einstellungen setzen
  • Fehlerseiten definieren
  • Zugriff für bestimmte IPs erlauben oder blockieren

Für einen Passwortschutz ist die htaccess Datei ideal, da sie schnell eingerichtet ist und keine Änderungen am Server selbst benötigt.

Was ist eine htpasswd Datei?

Die htpasswd Datei enthält Benutzer und verschlüsselte Passwörter, die vom Webserver zur Authentifizierung genutzt werden. Sie wird extern abgelegt, meist außerhalb des öffentlichen Webverzeichnisses, damit sie nicht von außen einsehbar ist.

Beispiel:

user:secret
#beispiel: test:test123242345
test: $apr1$547x6czg$ZOB.RvFfT2JdN1KfOvuUF0

Wichtig:
Passwörter werden hier verschlüsselt gespeichert. Am häufigsten wird das Apache-Format mit MD5, SHA oder bcrypt verwendet. Unverschlüsselte Passwörter sind absolut tabu.

Passwörter erzeugst du z. B. mit:

  • htpasswd Generatoren
  • Linux Konsole: htpasswd -nb benutzer passwort
  • Online Tools mit SSL (nur zu Testzwecken)

Wo sollte die htpasswd Datei abgelegt werden?

Die htpasswd Datei gehört immer außerhalb des öffentlichen Webroots, also nicht in /public_html, /www oder /htdocs. Ein sicherer Pfad wäre zum Beispiel:

/home/username/secure/.htpasswd

Oder in Hosting-Umgebungen:

/var/www/.secrets/htpasswd

Der Pfad sollte so gewählt sein, dass er per Browser nicht erreichbar ist.

htaccess Passwortschutz – Beispiel

Die grundlegende Konfiguration sieht so aus:

AuthUserFile /home/benutzer/secure/.htpasswd
AuthGroupFile /dev/null
AuthName "Passwortgeschuetzter Bereich"
AuthType Basic
Require valid-user

Sobald diese Datei im gewünschten Ordner liegt, wird dieser Ordner inklusive Unterordner geschützt.

Kann man nur Unterordner schützen?

Ja, das ist sogar sehr üblich. Wenn du z. B. eine Beta Version im Unterordner /vorschau hast, legst du dort eine eigene htaccess Datei an. Der Rest der Website bleibt weiterhin erreichbar.

Passwortschutz für einzelne Domains oder Subdomains

Das funktioniert ebenfalls problemlos. Jede Domain und Subdomain kann eigene htaccess Dateien verwenden. So kannst du etwa eine Testdomain komplett schützen, während die Hauptdomain offen bleibt.

Beispiel für Domainabhängigkeit:

SetEnvIf Host my-domain.test passreq

AuthType Basic
AuthName "Password Required"
AuthUserFile /home/user1234/meinewebsite/htpwd/.htpasswd

Require valid-user

Order allow,deny
Allow from all
Deny from env=passreq
Satisfy any

Damit kann man abhängig vom Domainnamen entscheiden, ob ein Passwort benötigt wird.

Mit welchen Webservern funktioniert das?

Die htaccess Methode funktioniert bei:

  • Apache
  • LiteSpeed
  • OpenLiteSpeed (teilweise eingeschränkt)

Nicht unterstützt wird htaccess bei:

  • Nginx
  • IIS (Microsoft)

Für Nginx muss der Passwortschutz in der Serverkonfiguration eingerichtet werden, nicht über htaccess.

Vorteile und Nachteile des htaccess Passwortschutzes

VorteilNachteil
Sehr leicht einzurichtenFunktioniert nicht mit Nginx ohne Serverzugriff
Keine Plugins oder Software nötigLogin Fenster kann nicht gestaltet werden
Serverseitige AbsicherungBasic Auth sendet Benutzername und Passwort kodiert, nicht verschlüsselt
Ideal für Wartungsmodus oder geschützte VorschauOhne HTTPS unsicher
Funktioniert für ganze Websites oder einzelne OrdnerKann Caching Systeme ausbremsen

Wichtig:
Immer HTTPS nutzen, damit die Zugangsdaten verschlüsselt übertragen werden.

Wie sicher ist der Passwortschutz?

Richtig eingerichtet ist Basic Auth durchaus sicher für Vorschau Seiten, interne Tools oder Entwicklungsumgebungen. Es ist aber kein Ersatz für ein komplexes Login System, zum Beispiel für Mitgliederbereiche oder Webanwendungen.

Empfehlung für maximale Sicherheit:

  • HTTPS aktivieren
  • Passwörter mit bcrypt erzeugen
  • htpasswd Datei außerhalb des Webverzeichnisses speichern
  • Zusätzlich IP Whitelist nutzen (optional)

Welche Alternativen gibt es?

IP Whitelist

Zugriff nur von bestimmten IPs erlauben:

Order deny,allow
Deny from all
Allow from 123.123.123.123

Wartungsmodus Plugin

Für WordPress, Joomla, Shopware und andere CMS Systeme existieren Plugins, die einen Wartungsmodus mit eigenem Template anzeigen.

Serverseitige Authentifizierung (Nginx)

Für Nginx wird die Authentifizierung in der server.conf definiert.

Passwortschutz über das Hosting Panel

Plesk und cPanel bieten eigene Passwortschutz Funktionen für Verzeichnisse.

Passkey oder Token basierte Zugangsbeschränkung

Für moderne Entwicklungsumgebungen gibt es Token Links statt Passwortabfragen.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen