Shopware Passwortschutz mit .htaccess

Vorwort

Wenn Sie Verzeichnisse Ihrer Shopware-Installation und/oder Ihres Online-Shops (bspw. die gesamte Shopware-Storefront) mit einer HTTP Basic Authentifizierung schützen möchten, zeigt Ihnen unsere Anleitung, wie Sie diesen auf Ihrem Shopware oder Plesk Server einrichten können.


Voraussetzungen

  • Shopware-Installation
  • Plesk Control Panel



Benutzername und Passwort erstellen (.htpasswd)

Verbinden Sie sich im ersten Schritt mittels SSH und des zum Abonnement gehörenden SSH-Benutzers bei Ihrem Plesk-Server an:


ssh musteruser@sXXXXX.creolineserver.com


Erstellen Sie nun mit folgendem Befehl eine .htpasswd mit dem gewünschten Benutzernamen und dem gewünschten Passwort. Ersetzen Sie hierbei <Domain> durch Ihr entsprechendes Abonnement und musteruser durch den gewünschten Benutzernamen. Geben Sie anschließend das gewünschte Kennwort ein und bestätigen Sie Ihre Eingabe durch die erneute Eingabe des Kennwortes:


htpasswd -c /var/www/vhosts/<Domain>/.htpasswd musteruser
New password:
Re-type new password:



Anpassen der .htaccess-Datei im Plesk Control Panel

Melden Sie sich zunächst über das Kundencenter unter account.creoline.com mit Ihren Zugangsdaten an und führen Sie die Anmeldung im Plesk Control Panel auf dem gewünschten Server aus. Wie Sie eine Anmeldung im Plesk Control Panel durchführen können, zeigt Ihnen folgender Hilfecenter-Artikel: Anmeldung im Plesk Control Panel


Wählen Sie anschließend den Menüpunkt Dateien für Ihre Shopware Domain aus, um das Document-Root Ihres Shopware Shops zu öffnen.


Plesk Control Panel - Domain-Übersicht


Klicken Sie anschließend auf die Datei .htaccess in dem File Manager, um diese über das Plesk Control Panel zu bearbeiten und navigieren mit dem Cursor an das Ende der Datei, damit die Änderungen unterhalb der Standard-Shopware-Anweisungen eingefügt werden.


Plesk Control Panel - Document-Root


Erweitern Sie die .htaccess-Datei um folgenden Inhalt, um sicherzustellen, dass der Passwortschutz nur für die Shopware Storefront angewendet wird, da es ansonsten zu Problemen mit der Administration und der integrierten API von Shopware kommt. Ersetzen Sie hierbei den Platzhalter <Domain> durch Ihr entsprechendes Abonnement:


AuthName "Administrator's Area"
AuthType Basic
AuthUserFile /var/www/vhosts/<Domain>/.htpasswd
require valid-user

SetEnvIf Request_URI /api noauth=1
<RequireAny>
Require env noauth
Require env REDIRECT_noauth
Require valid-user
</RequireAny>

SetEnvIf Request_URI /admin noauth=1
<RequireAny>
Require env noauth
Require env REDIRECT_noauth
Require valid-user
</RequireAny>

SetEnvIf Request_URI /product-api noauth=1
<RequireAny>
Require env noauth
Require env REDIRECT_noauth
Require valid-user
</RequireAny>

SetEnvIf Request_URI /store-api noauth=1
<RequireAny>
Require env noauth
Require env REDIRECT_noauth
Require valid-user
</RequireAny>


Speichern Sie die Datei ab, damit die Änderung wirksam wird und testen Sie diese zum Schluss durch folgende Aufrufe. Ersetzen Sie dabei wieder musterdomain.tld durch die tatsächliche Domain des Shops:


  1. Aufruf der Shopware-Storefront (z.B. https://musterdomain.tld)
  2. Aufruf des Shopware-Admin-Backends (z.B. https://musterdomain.tld/admin)


Sie sollten beim ersten Aufruf zur Eingabe eines Benutzernamens und eines Passworts aufgefordert werden.