Cloud Server: Bereitstellung und Sicherheit

Die Cloud App und die Web App sind Cloud Clients. Hier läuft die exakt gleiche Business-Logik auf einem Applikationsserver, die Oberfläche wird ebenfalls auf dem Server aufbereitet und die Cloud Clients stellen diese nur dar und empfangen den User-Input. Für die Bereitstellung ist der Vertec.CloudServer Dienst zuständig.

Die Verbindung zum Vertec.CloudServer kann über TLS (ehemals SSL) geschützt werden.

Es gibt folgende Möglichkeiten, den Vertec.CloudServer zu betreiben:

  • Unverschlüsselt (Standard)
  • Verschlüsselt mit einem selbst ausgestellten Zertifikat
  • Verschlüsselt mit einem echten Zertifikat von einer Zertifizierungsstelle (empfohlen)
  • Via Vertec Webaccess

Um sicherzustellen, dass der Client (Cloud App oder Web App) mit dem echten Server kommuniziert, muss sich der Server korrekt ausweisen können. Ein "Ausweis" für den Server wird Zertifikat genannt und normalerweise von einer öffentlich anerkannten Zertifizierungsstelle (CA) gegen Entgelt ausgestellt.

Bei einer verschlüsselten Verbindung ist der Server dazu verpflichtet, sich ausweisen zu können. Aus diesem Grund besitzt der Vertec.CloudServer die Möglichkeit, sich selbst ein Zertifikat auszustellen, welches aber nicht öffentlich anerkannt ist. Die Verbindung ist dann verschlüsselt, nur der Server ist nicht verifiziert. Das ist besser als eine unverschlüsselte Verbindung, wir empfehlen aber die Verwendung eines echten Zertifikats.

Unverschlüsselter Betrieb

Im unverschlüsselten Betrieb ist kein Zertifikat nötig. Wenn in der Einstellung Secure Server Port im Vertec.ini-File kein Wert gesetzt ist (Standard), startet der Server unverschlüsselt. Dies eignet sich nur für den Betrieb im LAN bzw. via VPN im LAN.

TLS Betrieb über ein selbst ausgestelltes Zertifikat

Falls die geschützte Verbindung mit selbst ausgestelltem Zertifikat gewählt wird, ist die Verbindung zwar gegen aussen geschützt, es kann allerdings nicht sichergestellt werden, ob die Verbindung auch wirklich mit dem Server aufgebaut wurde (Man-in-the-Middle-Angriff). Die Cloud App wird deshalb beim ersten Verbindungsaufbau fragen, ob dem Server vertraut werden soll, und erst wieder nachfragen, falls sich an der Verbindung etwas ändert (Beispielsweise ein neues Zertifikat ausgestellt wurde).

Beim Besuch des Vertec Portals für Cloud Clients oder der Web App wird Ihr Browser das nicht vertrauenswürdige Zertifikat bemängeln. Die Zertifikate können im Browser als vertrauenswürdig deklariert werden.

Zertifikat selbst erstellen

Um sich selbst ein Zertifikat auszustellen, kann Vertec.CloudServer mit dem Kommandozeilen Parameter /certcreate gestartet werden. Das Zertifikat wird nach dem Erstellen automatisch im Windows Zertifikatsspeicher (unter EigeneZertifikate) abgelegt.

Anschliessend muss das Zertifikat an einen Port gebunden werden, siehe Abschnitt Certificate Binding weiter unten.

TLS Betrieb über ein echtes Zertifikat

Um ein echtes Zertifikat zu erhalten, muss man bei einer Zertifizierungsstelle registriert sein. Dort kann man ein Zertifikat für eine bestimmte Domain und einen bestimmten Zeitraum einkaufen.

Wie erhalte ich ein echtes Zertifikat für meinen Server?

Um sich das Zertifikat ausstellen zu lassen, sind folgende Schritte nötig:

  1. Zertifikatsregistrierungsanforderung (CSR) erstellen: Als erstes muss man auf dem Server, welcher sich anschliessend mit dem Zertifikat ausweisen soll, eine sogenannte Zertifikatsregistrierungsanforderung (CSR) erstellen. Der Vertec.CloudServer macht dies bequem über den Kommandozeilen-Parameter /csrcreate. Eine Konsole öffnet sich und fragt einige Angaben zum Zertifikat ab. Anschliessend wird die Zertifikatsregistrierungsanforderung im Ordner des Vertec.CloudServers unter dem gewählten Namen abgespeichert.
  2. Erhalten des Zertifikates: Die generierte Textdatei (PKCS#10), kann nun bei einer Zertifizierungsstelle hochgeladen werden. Im Gegenzug liefert diese das erwartete Zertifikat für den Server. Wir empfehlen, das Zertifikat im .p7b Format herunterzuladen und auf dem Server zu speichern.
  3. Importieren des Zertifikates in den Zertifikatsspeicher: Nun muss das Zertifikat in den Zertifikatsspeicher unter Eigene Zertifikate abgelegt werden. Es gibt mehrere Möglichkeiten dies zu tun (oftmals hat man die Möglichkeit dies mit einem Doppelklick auf das Zertifikat zu erledigen). Die Möglichkeit, welche von allen unterstützen Betriebssystemen angeboten wird, ist folgende:
    • In der Microsoft Management Console (Windows Ausführen > mmc) unter Datei > Snap-in hinzufügen / entfernen die Zertifikate auswählen und auf Hinzufügen klicken.
    • Im erscheinenden Menü Zertifikat-Snap-In das Computerkonto auswählen und fertigstellen.
    • Den neu erschienenen Eintrag Zertifikate (Lokaler Computer) auswählen und mit der rechten Maustaste auf Eigene Zertifikate klicken.
    • Im Kontextmenü unter Alle Aufgaben die Option Importieren... wählen.
    • Im Zertifikatimport-Assistent auf Weiter und mit Durchsuchen das heruntergeladene Zertifikat auswählen. In der darauffolgenden Auswahl die Option Zertifikatsspeicher automatisch auswählen wählen und mit Weiter und Fertigstellen bestätigen. Die Management Console kann anschliessend geschlossen werden.
  4. Vertec.CloudServer auf das korrekte Zertifikat verweisen: Damit der Vertec.CloudServer weiss, welches Zertifikat er benutzen soll, gibt es eine Einstellung in der Konfigurations Datei (Vertec.ini). Diese Einstellung heisst Certificate Name und muss dem Namen (FriendlyName oder CommonName des Subject) ihres Zertifikates entsprechen.

    Dieser Schritt kann normalerweise übersprungen werden, da beim Erstellen des CSR bereits ein Eintrag in die Konfigurationsdatei (Vertec.ini) erstellt wurde.

Anschliessend muss das Zertifikat an einen Port gebunden werden:

Certificate Binding

Damit das Zertifikat auf einem bestimmten Port angesprochen werden kann, muss es an diesen gebunden werden. Wird Vertec.CloudServer als Administrator ausgeführt, wird das automatisch beim Start erledigt. Falls etwas nicht funktioniert (weil beispielsweise keine Berechtigung dafür vorhanden ist), meldet der Vertec.CloudServer einen Fehler.

Nur falls der Vertec.CloudServer nicht von einem Benutzer mit Administrator-Rechten (z.B. LocalSystem im Normalfall) ausgeführt wird oder ein Binding Fehler aufgetreten ist, muss das Zertifikat einmalig manuell gebunden werden. Um das Zertifikat manuell zu binden, kann Vertec.CloudServer mit dem Kommandozeilen Parameter /certbind ausgeführt werden. Der CloudServer versucht dabei das Zertifikat, welches Sie im Vertec.ini angegeben haben, auf den am gleichen Ort angegebenen Port zu binden. Falls dies fehlschlägt, gibt der Vertec.CloudServer einen Fehler aus.

Intern verwenden /certbind und /certunbind netsh. Um Zertifikat-Bindings zu inspizieren, kann der Kommandozeilen-Befehl show sslcert [ipport=]IP Address:port (siehe https://msdn.microsoft.com/en-us/library/windows/desktop/cc307243(v=vs.85).aspx) verwendet werden. Beispiel:

netsh http show sslcert ipport=0.0.0.0:443

HTTP Strict Transport Security (HSTS)

Gilt nur für den verschlüsselten Betrieb. Als eine Massnahme gegen Man-in-the-middle-Angriffe wurde im Vertec.CloudServer HSTS Support eingebaut. HSTS kann mittels Einstellung HSTS Max Age in der Konfigurationsdatei Vertec.ini aktiviert werden.

HTTP to HTTPS Redirect

Gilt nur für den verschlüsselten Betrieb. Damit nicht ​https:// in die Browserzeile geschrieben werden muss, werden alle HTTP Anfragen auf den im Vertec.ini angegebenen Server Port auf HTTPS Anfragen für Secure Server Port umgeleitet.

Windows hat eine priorisierte Liste von Cipher-Suites, die von Servern und Clients auf dem Rechner berücksichtigt werden (Cypher suit priority list).
Diese Liste wird von Microsoft mit Windows Updates regelmässig aktualisiert, enthält aber üblicherweise aus Gründen der Rückwärtskompatibiliät auch Protokolle, die sicherheitsmässig nicht mehr top sind.

Wirklich problematische Cypher suites werden aber von Microsoft mit Updates entfernt. Im Normalfall sollte es also reichen, wenn man sich auf den Windows Standard verlässt.

Verwendung von Verschlüsselungssammlungen (cypher suites)

Bei der Verschlüsselung wird das SSL System von Microsoft verwendet. Dieses wiederum verwendet Verschlüsselungssammlungen und aktualisiert diese mittels Windows Updates. Aus Windows Rückwärtskompatibilitätsgründen werden auch Verschlüsselungskombinationen unterstützt, welche von gewissen SSL Test-Tools als unsicher eingestuft werden.

Für Installation mit höheren Sicherheitsansprüchen, die z.B. den (hohen) Anforderungen der üblichen SSL Test-Tools entsprechen möchten, bietet sich die Möglichkeit, eine eigene Priority-List von Verschlüsselungssammlungen (cypher suites) zu definieren. Diese ersetzt dann die von Microsoft gepflegte List und muss auch selbst aktualisiert werden.

Das Definieren einer eigenen cypher suite Liste geschieht im Editor für lokale Gruppenrichtlinien (gpedit.msc).

  • Klicken Sie auf Computerkonfiguration > Administrative Vorlagen > Netzwerk > SSL-Konfigurationseinstellungen.
  • Klicken Sie mit der rechten Maustaste auf Reihenfolge der SSL-Verschlüsselungssammlungen und wählen Sie Bearbeiten.
  • Im daraufhin erscheinenden Fenster können Sie eigene Richtlinien aktivieren:

Cloud Server Management Console

Für den Cloud Server gibt es eine Management-Console, welche standardmässig auf dem Port 8082 läuft (Einstellung Management Port im Vertec.ini-File). Sie wird über localhost:8082 aufgerufen. Der Aufrufende muss am Server angemeldet sein und der Aufruf über localhost erfolgen. Von "aussen" ist dies nicht möglich.

Die Management Console sieht wie folgt aus:

Hier sieht man die auf Vorrat gestartete Idle Sessions (siehe Process Pool Size im Vertec.ini File) sowie alle aktuelle angemeldeten Clients.

Die Management Console bietet folgende Optionen:

  • Server Status NormalOperation / Maintenance: Per Mausklick auf das Werkzeug hinter dem Server Status kann von Normalbetrieb auf Maintenance umgestellt werden. Die bestehenden Sessions werden davon nicht tangiert, aber es können sich keine neuen Clients mehr anmelden.

  • Eine Nachricht an angemeldete Benutzer schicken: Per Klick auf das Mail-Zeichen kann den entsprechenden Session eine Nachricht geschickt werden.


Die Message erscheint direkt auf dem Bildschirm des angemeldeten Benutzers:

  • Eine Session beenden: Jede laufende Session kann per Klick auf das X geschlossen werden. Nicht gespeicherte Änderungen des entsprechenden Benutzers gehen dabei verloren.

 


04.03.2016 | 18.04.2016: Hinweis auf Vertec Webaccess eingefügt.
Produktlinien: Standard, Expert
Module: Leistung & CRM
Apps: Web App, Cloud App