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".

TLS-Zertifikat installieren Schritt1

Um Ihr Zertifikat zu importieren, klicken Sie auf der rechten Seite auf "Importieren..." und wählen dann Ihre .pfx-Zertifikatsdatei aus.

TLS-Zertifikat installieren Schritt2

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.

TLS-Zertifikat installieren Schritt3

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".

TLS-Zertifikat installieren Schritt4

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".