Erfahren Sie, wie Sie ein Ver­zeich­nis mit Hilfe der grund­le­gen­den HTTP-Au­then­ti­fi­zie­rung des Apache mit einem Passwort schützen können. Diese Methode er­mög­licht es Ihnen, einen ge­schütz­ten Bereich Ihrer Website ein­zu­rich­ten, der einen Be­nut­zer­na­men und ein Passwort für den Zugriff erfordert.

An­for­de­run­gen

Cloud Server
Leis­tungs­star­ke Kon­fi­gu­ra­tio­nen
  • On-Demand ska­lier­bar & Root-Zugriff inklusive
  • Hoch­ver­füg­ba­re Server-Plattform
  • ISO-zer­ti­fi­zier­te Re­chen­zen­tren am Standort Deutsch­land

Erstellen der Passwort-Datei

Der erste Schritt besteht darin, eine Pass­wort­da­tei zu erstellen, mit der der Apache den Be­nut­zer­na­men und das Passwort überprüft. Diese Datei wird.htpasswd genannt und an einem sicheren Ort abgelegt: /etc/apache2 auf Ubuntu 16.04, und /etc/httpd auf CentOS 7.

Mit dem Befehl htpasswd kann entweder eine Pass­wort­da­tei erstellt oder ein Eintrag hin­zu­ge­fügt werden. Zum ersten Mal werden wir das Flag -c verwenden, um die Datei zu erstellen und den Be­nut­zer­na­men jdoe hin­zu­zu­fü­gen:

  • CentOS 7: sudo htpasswd -c /etc/httpd/.htpasswd jdoe
  • Ubuntu 16.04: sudo htpasswd -c /etc/apache2/.htpasswd jdoe

Sie werden auf­ge­for­dert, das neue Passwort für den Benutzer ein­zu­ge­ben und zu be­stä­ti­gen.

Hin­zu­fü­gen eines neuen Benutzers zu einer be­stehen­den Datei

Um einen neuen Benutzer zu einer be­stehen­den Pass­wort­da­tei hin­zu­zu­fü­gen, verwenden Sie den gleichen Befehl ohne das Flag -c. Um zum Beispiel einen Benutzer janedoe hin­zu­zu­fü­gen, lautet der Befehl:

  • CentOS 7: sudo htpasswd /etc/httpd/.htpasswd janedoe
  • Ubuntu 16.04: sudo htpasswd /etc/apache2/.htpasswd janedoe

Sie werden auf­ge­for­dert, das neue Passwort für den Benutzer ein­zu­ge­ben und zu be­stä­ti­gen.

Ver­zeich­nis­be­schrän­kung ak­ti­vie­ren

Bevor Sie ein Ver­zeich­nis be­schrän­ken können, müssen Sie den Apache so kon­fi­gu­rie­ren, dass er .htaccess-Dateien erlaubt.

CentOS 7

Öffnen Sie die Haupt­kon­fi­gu­ra­ti­ons­da­tei des Apache zur Be­ar­bei­tung mit dem Befehl:

sudo nano /etc/httpd/conf/httpd.conf

Scrollen Sie nach unten zum Abschnitt <Ver­zeich­nis> für "/var/wwww/html" und ändern Sie Al­lo­wO­ver­ri­de auf All.

Speichern und beenden Sie die Datei. Starten Sie dann den Apache neu, damit die Än­de­run­gen wirksam werden:

sudo systemctl restart httpd

Ubuntu 16.04

Öffnen Sie die Haupt­kon­fi­gu­ra­ti­ons­da­tei des Apache zur Be­ar­bei­tung mit dem Befehl:

sudo nano /etc/apache2/apache2.conf

Scrollen Sie nach unten zum Abschnitt <Ver­zeich­nis> für "/var/www" und ändern Sie Al­lo­wO­ver­ri­de auf All.

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Speichern und beenden Sie die Datei. Starten Sie dann den Apache neu, damit die Än­de­run­gen wirksam werden:

sudo systemctl restart apache2

Erstellen des be­schränk­ten Bereichs

Gehen Sie zu dem Ver­zeich­nis, das Sie schützen möchten. Zum Beispiel:

cd /var/www/html/admin

Erstellen Sie eine Datei namens.htaccess und öffnen Sie sie zur Be­ar­bei­tung:

sudo nano .htaccess

Fügen Sie das Folgende in diese Datei ein:

CentOS 7:

AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/httpd/.htpasswd

Ubuntu 16.04:

AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/apache2/.htpasswd

Testen der Au­then­ti­fi­zie­rung

Um die Au­then­ti­fi­zie­rung zu testen, besuchen Sie die pass­wort­ge­schütz­te URL in einem Browser. Sie erhalten ein Popup-Fenster, in dem Sie auf­ge­for­dert werden, einen Be­nut­zer­na­men und ein Passwort ein­zu­ge­ben, um fort­zu­fah­ren.

Hinweis

Wenn Ihr Browser über einen Popup-Blocker verfügt, müssen Sie ihn so kon­fi­gu­rie­ren, dass er Popups für diese Domain zulässt.

Zum Hauptmenü