Was ist SSL-Verschlüsselung und wozu wird sie benötigt?
Doch schauen wir uns zunächst an, was SSL überhaupt ist und warum es für dich als Shopbetreiber so wichtig ist.
SSL steht für Secure Sockets Layer und ist eine Technologie, die verwendet wird, um die Verbindung zwischen deinem Webbrowser und einer Website abzusichern.
SSL-Verschlüsselung ist unerlässlich, um deine Daten zu schützen und die Sicherheit beim Surfen zu gewährleisten.
Im Zeitalter des Internets, in dem wir ständig persönliche Daten online teilen, ist Datenschutz wichtiger denn je. SSL-Verschlüsselung hilft dabei, deine Daten zu schützen, indem sie während der Übertragung zwischen deinem Browser und der Website verschlüsselt werden.
Viele Länder und Behörden, insbesondere Deutschland und EU-Länder, haben erkannt, dass der Schutz persönlicher Daten von höchster Bedeutung ist. Daher haben sie Gesetze und Vorschriften erlassen, die Unternehmen dazu verpflichten, SSL-Verschlüsselung auf ihren Websites zu implementieren. Das bedeutet, dass Websites, die persönliche Informationen wie Passwörter, Kreditkartennummern oder persönliche Identifikationsdaten sammeln, SSL verwenden müssen, um die Sicherheit der Nutzer zu gewährleisten.
Du erkennst eine SSL-gesicherte Verbindung an dem kleinen Schlosssymbol in der Adressleiste deines Browsers und an der "https://" URL, anstelle von "http://". Das "s" steht für "secure", also sicher.
SEO-ready Premium-Theme vom Orangebytes
Flexibel anpassbar
SEO-ready - optimierter Quellcode
12 Monate Plugin-Support inklusive
30 Tage kostenlos testen - ohne Risiko
Vorbereitung
Wir schauen uns heute an, wie du deine Verkaufskanäle ordentlich konfigurierst und außerdem, wie du Zugriffe über HTTP automatisch auf die HTTPS Varianten der URL weiterleiten kannst. Dazu führen wir eine simple Anpassung an der .htaccess-Datei durch.
Schauen wir uns zunächst an, was wir für die Einrichtung benötigen.
Für die Bearbeitung nutzen wir folgende Tools:
- FTP (z.B. WinSCP, FileZilla, Cyberduck, …)
- Text-Editor (Visual Studio Code, Sublime Text, Atom, …)
- Status-Code Checker (httpstatus.io, …)
Außerdem brauchst du natürlich eine Domain mit gültigem SSL-Zertifikat.
Wenn du noch kein Zertifikat hast, kannst du das bei deinem Hoster einrichten. Bei vielen Hostern sind einige SSL-Zertifikate, wie beispielsweise "Let's Encrypt" mittlerweile völlig kostenlos zu haben.
Verkaufskanäle auf HTTPS umstellen
Zunächst begeben wir uns in den Admin-Bereich, um unsere Verkaufskanäle entsprechend auf SSL-Verschlüsselung umzustellen, indem wir HTTPS für unser Domains und URLs nutzen.
In der Verkaufskanal-Konfiguration findest du die entsprechenden Einstellungen unter "Domains". Hier sehen wir alle Domains und URL-Varianten, unter denen unser Verkaufskanal aufrufbar ist.
Hier solltest du zunächst sicherstellen, dass die HTTPS-Variante der Domain angelegt und aufrufbar ist. Solltest du die Variante noch nicht hinzugefügt haben, kannst du das über den Button "Domain hinzufügen" machen.
Bezüglich der HTTP-Varianten bieten sich uns zwei Optionen: Entweder wir nutzen sie hier als Verkaufskanaldomain, oder wir nutzen sie nicht.
Es sei gesagt, dass, wenn wir uns dazu entscheiden, unsere Domains zusätzlich mit HTTP anzulegen, der Shop ohne Verschlüsselung aufrufbar ist (Status-Code 200). Dies hat diverse Nachteilt. Wenn wir die Variante jedoch nicht anlegen, erhalten wir Fehler mit Status-Code 500. Beide Varianten sind also nicht optimal.
Aus diesem Grund ist es notwendig, dass wir im nächsten Schritt eine Weiterleitung per Status-Code 301 anlegen.
Da wir unverschlüsselte Zugriffe Weiterleiten, musst du die HTTP-Variante der Domain deines Verkaufskanals nicht anlegen. Es schadet zwar auch nicht das zu tun, aber da weitergeleitet wird, wird sie ohnehin nie aufgerufen und es erhöht nur unnötig die Komplexität der Konfiguration. Gerade wenn du eine Multishop-Installation hast, wird das nur zur Last, ohne das es Vorteile bringt.
Also ich würde euch empfehlen, nur die entsprechende HTTPS-Variante anlegen. Gleiches gilt außerdem auch, wenn ihr Zugriffe per www oder non-www forcieren möchtet. Am besten einfach nur die eine Hauptvariante der Domain/Domain-URL angeben, die ihr nutzen möchtet.
Schauen wir uns als nächstes an, wie wir die Weiterleitung durchführen.
HTTPS auf HTTPS Weiterleitung 301 per .htaccess (301)
Wir verbinden uns per FTP mit unserem Webserver und begeben uns ins Stammverzeichnis des Onlineshops. Die ".htaccess"-Datei finden wir im Ordner "public".
Das ist eine simple Text-Datei die Serverkonfigurationen und Anweisungen für Apache-Server enthält, die vor Aufrufen ausgeführt werden und die du mit einem normalen Texteditor öffnen kannst. Man kann damit vieles machen, einer der gängigsten Anwendungsbereiche ist allerdings das Thema Weiterleitungen, wie auch in unserem Beispiel heute.
Wenn wir uns die Datei anschauen, sehen wir, dass hier schon einiges drinsteht, was Shopware 6 automatisch generiert hat. Besonders wichtig sind die Ausdrücke "# BEGIN Shopware" und "# END Shopware". Alles was dazwischen steht, wird automatisch generiert. Es bietet sich also an, dass wir unsere Anpassungen außerhalb dieses Bereichs platzieren, damit sie nicht überschrieben werden.
Für die Weiterleitung platzieren wir die folgenden Code-Zeilen oberhalb von "# BEGIN Shopware".
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Dieser Code stellt sicher, dass alle Anfragen, die über eine ungesicherte HTTP-Verbindung eingehen, automatisch auf die entsprechende HTTPS-URL umgeleitet werden. Dadurch wird sichergestellt, dass die Verbindung verschlüsselt ist.
Zunächst überprüfen wir sicher, dass "mod_rewrite" verfügbar ist. Nur dann wird der Code ausgeführt, weil es andernfalls zu Fehlern kommen kann.
Dann wird die "RewriteEngine" aktiviert. Dies ermöglicht die Verwendung von Rewrite-Regeln für die Weiterleitung.
Anschließend definieren wir eine Kondition ("RewriteCond"), auf der die Ausführung der Regel ("RewriteRule") abhängt. In der Kondition wird geprüft, ob HTTPS aktiviert ist.
Ist das nicht der Fall, leiten wir auf die entsprechende HTTPS-Variante weiter, indem wir uns die URL aus dem Host ("%{HTTP_HOST}") und der Request-URI ("%{REQUEST_URI}") neu zusammenbauen.
In eckigen Klammern können wir dann noch einige Parameter angeben:
- "L" definiert, dass die Ausführung nach Bearbeitung dieser Regel gestoppt wird. Da wir an der Stelle eine Weiterleitung durchführen, macht es keinen Sinn die restlichen Anweisungen durchzugehen.
- "R=301" definiert, dass per Status-Code 301 weitergeleitet wird. Das steht für eine permanente Weiterleitung, was beispielsweise für SEO sehr wichtig ist.
Damit wurde die Weiterleitung durchgeführt und wir können nun testen, ob alles so funktioniert, wie wir uns das wünschen.
Test
Um die Änderungen zu überprüfen, können wir nun einen Status-Code Checker wie beispielsweise httpstatus.io verwenden. Hier geben wir einfach beide Varianten der URL ein (also "http" und "https") und klicken auf "Check status".
Bei der HTTP-Variante der Domain sehen wir nun, dass zwei Status-Codes angezeigt werden – 301 und dann 200. Schauen wir uns das genauer an, sehen wir, dass unsere Weiterleitung greift und unverschlüsselte Zugriffe werden direkt per korrektem Status-Code auf die verschlüsselte Variante weitergeleitet.
Ich würde auch empfehlen noch ein paar mehr verschiedene URLs zu prüfen, um auf Nummer sicher zu gehen. Beispielsweise eine Kategorie, eine Produktseite, den Warenkorb, etc.
Und damit sind wir schon am Ende.
Hast du Fragen, Anmerkungen oder möchtest mehr über ein bestimmtes Thema rund um Shopware 6 erfahren? Dann schreib uns gerne eine Nachricht!