TLS - Einrichtung
Dank Transport Layer Security (TLS) ist die Verbindung zwischen Shopware und Clarity&Success verschlüsselt. Ohne Verschlüsselung würden die Bestellungen Ihrer Kunden im Klartext an Ihr Clarity&Success-System gesendet werden. Aufgrund von Datenschutzbestimmungen kann es erforderlich sein, sensible Kundendaten verschlüsselt zu übertragen. Wir empfehlen daher dringend, eine verschlüsselte Verbindung einzurichten.
Beziehen eines TLS-Zertifikats
Es gibt viele Zertifizierungsstellen (CA), die Ihnen ein TLS-Zertifikat zur
Verfügung stellen. In der Regel benötigen Sie eine Domain, die auf Ihr
Clarity&Success System zeigt. Bitten Sie Ihren Domain-Administrator, den
A-Record (und/oder AAAA-Record) auf die IP-Adresse Ihres Clarity&Success Systems
zu setzen. Sie benötigen eine statische IP-Adresse oder einen dynamischen
DNS-Provider, um sicherzustellen, dass die Domain immer auf die richtige
IP-Adresse verweist. Bitten Sie Ihren IT-Administrator um Hilfe, wenn Sie sich
nicht auskennen. Danach können Sie ein Zertifikat bei einer
Zertifizierungsstelle beantragen oder selbst eines generieren, z.B. mit OpenSSL.
Am Ende sollten Sie eine .pfx
-Datei haben, die dann in Internet Information
Services (IIS) importiert werden kann.
Erstellen eines selbstsignierten Zertifikats
Mit unserem Shopware-Plugin können Sie den öffentlichen Schlüssel eines selbstsignierten Zertifikats zur Validierung und Verschlüsselung von Anfragen zwischen Shopware und Clarity&Success hochladen. Wenn Sie OpenSSL auf Ihrem Rechner installiert haben, können Sie mit folgenden Befehlen ein selbstsigniertes Zertifikat generieren:
$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3650
Dadurch wird ein Zertifikat und ein privater Schlüssel erstellt, der für 3650 Tage (~10 Jahre) gültig ist. Während normale TLS-Zertifikate aus gutem Grund nur etwa 1-2 Jahre gültig sind, ist dies hier nicht nötig: Wir können die Zertifikate auf beiden Seiten (Shopware und Clarity&Success) leicht austauschen. Wenn der private Schlüssel in falsche Hände geraten würde, gibt es nicht unzählige Nutzer:innen, die dieses Zertifikat verwenden.
Der Befehl wird Ihnen mehrere Fragen stellen. Die wichtigste davon
ist: Common Name (e.g. server FQDN or YOUR name)
. Hier müssen Sie Ihre Domain
ohne das Protokoll (z.B. http) eingeben. Ein Beispiel wäre
claritysuccess.wesionaire.com.
Windows IIS akzeptiert nur eine pfx-Datei. Konvertieren Sie den Schlüssel und das Zertifikat mit dem folgenden Befehl:
$ openssl pkcs12 -export -out certificate.pfx -inkey key.pem -in cert.pem
Jetzt können Sie die Datei certificate.pfx
installieren, wie im nächsten
Abschnitt erläutert wird.
Installation des Zertifikats
Öffnen Sie auf Ihrem Clarity&Success-Server den IIS-Manager. Wählen Sie links Ihren Server aus und klicken Sie dann auf "Serverzertifikate".
Um Ihr Zertifikat zu importieren, klicken Sie auf der rechten Seite auf "Importieren..." und wählen dann Ihre .pfx-Zertifikatsdatei aus.
Wählen Sie den Server auf der linken Seite aus (normalerweise CS_Webservice
oder CS_Webservices
). Klicken Sie auf "Bindungen"
auf der rechten Seite und klicken Sie auf "Hinzufügen". Wählen Sie "https" als
Typ, stellen Sie einen Port ein, der vom Internet aus zugänglich ist und wählen
Sie das TLS-Zertifikat, das wir zuvor importiert haben.
Konfigurieren Sie den Web-Service
Im letzten Schritt müssen wir den Clarity&Success-Webservice so konfigurieren,
dass er verschlüsselte Verbindungen akzeptiert. Wählen Sie auf der linken Seite
CS_Webservice
oder CS_Webservices
. Klicken Sie auf "Im Explorer öffnen".
Klicken Sie mit der rechten Maustaste auf die Konfigurationsdatei "Web" und
wählen Sie "Bearbeiten".
Achten Sie in der Datei auf die folgenden Zeilen:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- ... -->
<bindings>
<webHttpBinding>
<!-- Very important part for upload of multipart data! -->
<binding maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Streamed">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</webHttpBinding>
</bindings>
<!-- ... -->
</configuration>
Sie müssen <security mode="Transport"/>
innerhalb des webHttpBinding
-Tags
hinzufügen. Am Ende sollte dieser Abschnitt wie folgt aussehen:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- ... -->
<bindings>
<webHttpBinding>
<!-- Very important part for upload of multipart data! -->
<binding maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Streamed">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="Transport"/>
</binding>
</webHttpBinding>
</bindings>
<!-- ... -->
</configuration>
Das war's! Bitte starten Sie den Server neu, um sicherzustellen, dass die Änderungen übernommen werden. Klicken Sie auf den Hauptserver (normalerweise GS-SQL) im linken Menü und dann im rechten Menü auf "Server neu starten".