Die Einhaltung der strengen Sicherheitsrichtlinien in einem Unternehmen kann dazu führen, dass die Kommunikation zwischen den unterschiedlichen Komponenten der Citrix Infrastruktur TSL-verschlüsselt stattfinden muss.
Die folgende Anleitung kann Ihnen helfen die entsprechenden Verschlüsselungsanforderungen zu erfüllen.
Ein StoreFront Server erfüllt in einer Citrix Infrastruktur eine Art vermittelnde Aufgabe. Der StoreFront steht einerseits den Benutzern zwecks Anmeldung zur Verfügung, andererseits kommuniziert er gleichzeitig mit den Delivery Controllern, um die Liste der Published Applikation / Desktop den angemeldeten Benutzern bereitzustellen.
Die Konfiguration von StoreFront setzt eine gesicherte Kommunikation sowohl zwischen den Clients des End Users (Citrix Receiver) und der Storefront-Infrastruktur, als auch zwischen den Delivery Controllern und den Storefront-Servern voraus.
Bei der Kommunikation zwischen einem StoreFront Server und einem Delivery Controller handelt sich um den XML-Datenverkehr.
Sicherer XML Traffic zwischen SF und DC
Standardmäßig ist die Kommunikation zwischen den StoreFront Servern und den Delivery Controllern nicht gesichert und läuft über den Port 80.
Konfigurationsschritte
Die Konfiguration lässt sich grob in folgende Schritte unterteilen:
- Verifizieren (Get-BrokerSite) Sie, ob die folgende Option TrustRequestsSentToTheXmlServicePort aktiviert (True) ist. Wenn das nicht der Fall ist, können Sie dies mit dem Befehl Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $true korrigieren.
- das Zertifikat auf dem StoreFront Server installieren
- den Kommunikationsweg auf dem StoreFront Server von HTTP auf HTTPS umstellen
- das Zertifikat auf dem Delivery Controller installieren
- die Befehlskette Netsh http add sslcert auf dem Delivery Controller ausführen
- Wenn ein NetScaler im Einsatz ist, sollen auch die STA-Pfade auf HTTPS umgestellt werden
- die Kommunikation über den Port 80 auf dem DC per Registry unterbinden
Wichtig: wenn das Zertifikat innerhalb der IIS-Konsole angebunden wird, dann sollen Sie keinen Befehl Netsh http add sslcert mehr ausführen.
Zu beachten:
- die Zertifikate haben immer ein Ablaufdatum (meistens alle zwei Jahre) und müssen vor dem Ablauf ausgetauscht werden.
- die Schritte 4 und 5 sollen auf jedem Delivery Controller wiederholt werden.
Zertifikat auf dem StoreFront installieren
Auf dem StoreFront Server wird ein Zertifikat benötigt, dessen Name mit der Adresse des Base URLs übereinstimmt. Ob Sie an dieser Stelle ein Wildcard- oder SAN-Zertifikat verwenden ist Ihnen überlassen. Da auf dem StoreFront Server ein IIS installiert ist, verwenden wir die Konsole um ein Zertifikat abzurufen.
1. IIS Manger > Home > Open Feature
2. Die Schaltfläche Create Domain Certificate anklicken
3. Führen Sie die Felder aus. Beachten Sie die korrekte Eingabe im „Common name“
4. Klicken auf Select um die CA zu wählen.
5. Benennen Sie das Zertifikat und schließen Sie den Wizard.
6. Binden Sie das Zertifikat an der Default Seite an.
7. Add
8. Wählen Sie das installierte Zertifikat.
9. Starten Sie die IIS Seite neu
10. Starten Sie die StoreFront Management Konsole > Servergruppe > Basis-URL ändern >
Passen Sie Adresse an http > https
11. Wählen den Store > weiter Action > Doppelklick auf dem Button Manage Delivery Controllers
12. Editieren Sie die Einstellungen > Edit
13. Stellen Sie die Transport Type um
von HTTP auf HTTPS
Die Konfiguration auf dem StoreFront Server ist abgeschlossen.
Zertifikat auf dem Delivery Controller installieren
Analog zu StoreFront wird auf jedem Delivery Controller ebenfalls ein Serverzertifikat installiert. Wichtig, dass der Common Name im Zertifikat korrekt eingegeben wurde und dem FQDN Namen des Servers entspricht.
Sie können ein bestehendes Zertifikat exportieren, oder selbst ein neues Zertifikat anfordern. Das letztere können Sie entweder innerhalb der IIS-Konsole tun, oder mit Hilfe der Zertifikat Management Konsole umsetzen.
Wenn in Ihrer Umgebung der Director auf einem separaten Server installiert wurde, existiert auf dem Controller auch kein Internet Information Server. In diesem Fall müssen Sie die Zertifikat Management Konsole (mmc Snap-In) einsetzen.
Hier ist ein Beispiel der Zertifikat-Erstellung innerhalb der Zertifikat Management Konsole.
1. Microsoft Management Konsole starten > Datei > Snap-In hinzufügen/entfernen > Zertifikate > Hinzufügen
2. Computerkonto auswählen
3. Weiter
4. Eigene Zertifikate > Rechte Maustaste > Alle Aufgaben > Neues Zertifikat anfordern
5. Weiter
6. Weiter
7. Registrieren
8. Fertigstellen
Das erstellte Zertifikat erscheint in einem Unterordner Zertifikate
Öffnen Sie das erstellte Zertifikat > Details:
Scrollen Sie zu dem Feld Fingerdruck (thumbprint) und notieren bzw. kopieren Sie den Wert zuerst in ein Notepad. Entfernen Sie alle Leerzeichen zwischen den Zahlen.
Zertifikat registrieren
Das installierte Zertifikat muss noch registriert werden. Für diesen Schritt werden grundsätzlich zwei unterschiedlichen Werte benötigt:
- die Fingerabdruck-Nummer
- die GUID (Globally Unique Identifier) des Citrix Broker Services
Den GUID lässt sich schnell aus der Registry auslesen. Starten den Registry-Editor und suchen Sie nach dem Citrix Broker Service in dem Zweig HKEY_CLASSES_ROOT\Installer\Products
Eine weitere Möglichkeit die GUID festzustellen wäre mit dem folgenden Befehl: wmic product list
Auch der GUID muss nur noch minimal angepasst werden:
IST: D5E64AFA43E527F4C9E29D02C39B0274
SOLL: D5E64AFA-43E5-27F4-C9E2-9D02C39B0274 (8 + 4 + 4 + 4 + 12 Zeichen)
Starten Sie als Administrator je nach Wunsch die PowerShell- oder die CMD-Konsole und führen Sie die folgende Befehlskette aus:
netsh http add sslcert ipport=<IP Adresse des Controllers>:<Port Nummer> certhash=<Certificate Hash Number - Fingerdruck> appid={<Citrix Broker Service GUID>}
netsh http add sslcert ipport=192.168.1.11:443 certhash=6c8553869ef49c418bc2fafe5e08e27383b8f84e appid={D5E64AFA-43E5-27F4-C9E2-9D02C39B0274}
Die Ergebnisse können Sie mit dem Befehl verifizieren:
netsh http show sslcert
Falls die eingegebene Information einen Fehler enthält, können Sie den Eintrag mit dem folgenden Befehl löschen:
netsh http del sslcert ipport=<IP Adresse>:<Port Nummer>
Starten Sie den Dienst Citrix Broker Services neu
Hiermit ist die Konfiguration soweit abgeschlossen und die Ergebnisse können getestet werden.
Die Kommunikation zwischen den StoreFront Server und den Delivery Controller wurde mit Wireshark verifiziert und ich kann nun bestätigen, dass die Kommunikation TSLv1.2 verschlüsselt ist.
Daher sind folgende Schritte eher optionaler Natur. Diese werden aber für eine FIPS-konforme Konfiguration vorausgesetzt.
SSL Kommunikation erzwingen
Um auf eine Nummer sicher zugehen, lässt sich die Kommunikation über den Port 443 zusätzlich erzwingen. Da die Kommunikation sowohl über den Port 443, als auch über den Port 80 möglich ist.
Die darauffolgenden Einstellungen sorgen dafür, dass die komplette Kommunikation nur über den Port 443 verläuft.
Öffnen Sie den Registry Editor auf dem Delivery Controller und navigieren Sie zu dem Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\DesktopServer
Erstellen Sie einen neuen DWORD-Wert (32-Bit) namens XmlServicesEnableNonSsl und geben eine 0 als Data.
XmlServicesEnableNonSsl – 1 aktiviert wieder die Kommunikation per HTTP
Außerdem gibt es einen weiteren Wert, der ebenso die Kommunikation per HTTP/HTTPS aktiveren bwz. deaktivieren kann.
XmlServicesEnableSsl – 1 aktiviert die Kommunikation per HTTPS
0 deaktiviert die Kommunikation per HTTPS
Nützliche Links: