Voraussetzungen:
Ein eigenes echtes SSL Zertifikat.
Für ein Shared SSL ist diese Vorgangsweise nicht geeignet!
Warum komplett auf SSL umstellen?
Standardmäßig ist SSL (falls vorhanden und aktiviert) in Zen Cart im Frontend oft nur für das Kundenlogin, den Checkout Prozess und die Kontaktseite aktiv.
„Normale“ Seiten wie Kategorien, Artikelseiten usw. werden standardmäßig per http aufgerufen und der Shop schaltet eben nur für Kundenlogin und Bestellvorgang auf https um
Seit Edward Snowden stellen immer mehr Seiten aus gutem Grund aber komplett auf https um.
Google selbst tut das schon lange und bewertet Seiten positiv, die durchgehend per https erreichbar sind.
Browser kennzeichnen bereits Seiten, die nicht per https erreichbar sind als unsicher.
Seitdem es unter anderem Let’s Encrpyt gibt, bieten die meisten Provider sogar kostenlose SSL Zertifikate an.
Daher gibt es bereits seit dem Jahr 2018 keinen einzigen Grund, eine Website nicht komplett via https erreichbar zu machen.
Wenn durchgehend auf https umgestellt wird, führt das zu leichten Geschwindigkeitseinbußen, da auch alle Bilder über https geladen werden.
Da bereits seit Zen Cart 1.5.3 deutsch der Seitenaufbau aber durch Caching und verbesserte Datenbankabfragen gegenüber älteren Versionen stark beschleunigt ist, gibt es bei durchgehendem SSL keine Nachteile mehr.
Es schadet aber nichts, seine Artikel- und Kategoriebilder zu optimieren, das sollte ohnehin Standard sein.
Um Frontend und Adminbereich komplett auf https umzustellen, sind folgende Änderungen nötig:
In diesem Beispiel ist der Shop unter www.meinshop.de
erreichbar und auch das SSL Zertifikat wurde für www.meinshop.de
ausgestellt, so dass der Shop mit folgender Adresse fehlerfrei erreichbar ist:
https://www.meinshop.de
DEINADMIN steht für den Namen des Adminverzeichnisses
Diese Werte entsprechend der realen Gegebenheiten anpassen
1)
includes/configure.php
Oben bei beiden URLs die SSL URL des Shops eintragen und SSL auf true stellen, so dass es so aussieht:
define('HTTP_SERVER', 'https://www.meinshop.de'); define('HTTPS_SERVER', 'https://www.meinshop.de'); define('ENABLE_SSL', 'true');
2)
DEINADMIN/includes/configure.php
Oben bei allen drei URLs die SSL URL des Shops eintragen und die SSL Option auf true stellen, so dass es so aussieht:
define('HTTP_SERVER', 'https://www.meinshop.de'); define('HTTP_CATALOG_SERVER', 'https://www.meinshop.de'); define('HTTPS_CATALOG_SERVER', 'https://www.meinshop.de'); define('ENABLE_SSL_CATALOG', 'true');
3)
Beim Hochladen der geänderten Dateien darauf achten, dass die beiden configure.php normalerweise mit einem Schreibschutz versehen sind (chmod 444).
Um sie also überschreiben zu können vorher die Rechte auf chmod 666 oder chmod 777 setzen.
Nach der Änderung die Rechte wieder auf chmod 444 ändern
Und darauf achten, dass es sich bei includes/configure.php und DEINADMIN/includes/configure.php um zwei völlig unterschiedliche Dateien handelt.
4)
Nach dieser Änderung den Shop aufrufen, es sollte jetzt beim Click auf irgendeine Kategorie oder irgendeinen Artikel immer eine https Adresse in der Adresszeile stehen.
In der Zen Cart Administration überprüfen, ob auch hier durchgehend immer https verwendet wird.
Sollte der Admin vorher nicht auf SSL gestellt gewesen sein, wird Zen Cart dazu auffordern, das Admin Passwort zu ändern.
5)
Wenn man den Shop direkt mit http://www.meinshop.de
aufruft, dann wird dieser Aufruf nicht dazu führen, dass die Adresse auf https://www.meinshop.de
umspringt.
Ebenso werden Links zum Shop, die auf anderen Websites mit http://www.meinshop.de/irgendwas
gesetzt sind nicht auf https umgeschrieben.
Das hat mit Zen Cart nichts zu tun.
Der im folgenden beschriebene Eintrag in der .htaccess kann entfallen, wenn der Provider bei der Konfiguration des SSL Zertifikats die Einstellung „SSL erzwingen“ vorsieht. Diese Einstellung zu setzen ist immer besser als irgendwelche .htaccess Einträge.
Um zu erzwingen, dass immer https statt http verwendet wird, also nie eine Seite unverschlüsselt aufgerufen werden kann, kann im Shopverzeichnis eine .htaccess mit z.B. folgendem Inhalt plaziert werden:
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.meinshop.de/$1 [R,L]
Bei manchen Providern kann auch alternativ stattdessen folgender Inhalt nötig sein:
RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTPS_HOST} !^www.meinshop.de$ [NC] RewriteRule ^(.*)$ https://www.meinshop.de/$1 [L,R=301]
Sollte es im Shopverzeichnis bereits eine .htaccess geben, dann entsprechend deren Inhalt mit dem Eintrag erweitern.
Gemeint ist hier nicht die .htaccess im includes Verzeichnis, sondern die im Shopverzeichnis, also das Verzeichnis, in dem sich auch die index.php des Shops befindet.
Nach dieser Änderung werden alle Aufrufe der Seite über http auf https umgeleitet.
6)
Effekte der Umstellung
Google wird in den Suchergebnissen binnen kürzester Zeit alle http:// Links zum Shop mit https:// ersetzen.
Da jetzt durchgehend https verwendet wird, darf auf der Seite kein Bild, kein Javascript, kein iFrame oder Youtube Video mit http eingebunden werden.
Es darf also kein Element mit
src="http://
vorhanden sein, sonst wird es entweder gar nicht angezeigt oder es erscheinen Sicherheitswarnungen.
Bilder daher immer relativ einbinden und nie mit absoluten Links. Falls doch mit absoluten Links, dann müssen die mit:
src="https://
erreichbar sein.
Gleiches gilt für Javascripts, Styleheets, iFrames oder Youtube Videos