Product Documentation

Transport Layer Security (TLS)

Aug 17, 2016
Das Konfigurieren einer XenApp- oder XenDesktop-Site zur Verwendung des TLS-Sicherheitsprotokolls (Transport Layer Security) umfasst folgende Schritte:
  • Rufen Sie ein Serverzertifikat ab und installieren und registrieren Sie es auf allen Delivery Controllern. Konfigurieren Sie zudem einen Port mit dem SSL-Zertifikat. Einzelheiten finden Sie unter Installieren von TLS-Serverzertifikaten auf Controllern.

    Sie können die Ports ändern, die der Controller zum Abhören von HTTP- und HTTPS-Datenverkehr verwendet.

  • Aktivieren Sie TLS-Verbindungen zwischen Benutzern und Virtual Delivery Agents (VDAs) mit den folgenden Schritten:
    Anforderungen und Überlegungen:
    • Das Aktivieren von TLS-Verbindungen zwischen Benutzern und VDAs gilt nur für XenApp 7.6- und XenDesktop 7.6-Sites sowie für unterstützte höhere Releases.
    • Konfigurieren Sie TLS in den Bereitstellungsgruppen und auf den VDAs nach der Installation von Komponenten sowie nach dem Erstellen von Sites, Maschinenkatalogen und Bereitstellungsgruppen.
    • Zum Konfigurieren von TLS in den Bereitstellungsgruppen müssen Sie die Berechtigung zum Ändern der Zugriffsregeln für Controller haben; ein Volladministrator hat diese Berechtigung.
    • Zum Konfigurieren von TLS auf den VDAs müssen Sie ein Windows-Administrator auf der Maschine sein, auf der der VDA installiert ist.
    • Wenn Sie TLS auf VDAs konfigurieren möchten, für die ein Upgrade von einer früheren Version durchgeführt wurde, deinstallieren Sie die SSL-Relay-Software vor dem Upgrade von den Maschinen.
    • Das PowerShell-Skript konfiguriert TLS auf statischen VDAs, jedoch nicht auf gepoolten VDAs, die von Maschinenerstellungsdienste oder Provisioning Services bereitgestellt wurden und deren Maschinenimage bei jedem Neustart zurückgesetzt wird.
Beachten Sie Folgendes beim Arbeiten in der Windows-Registrierung:
Achtung: Eine unsachgemäße Bearbeitung der Registrierung kann schwerwiegende Probleme verursachen und eine Neuinstallation des Betriebssystems erforderlich machen. Citrix übernimmt keine Garantie dafür, dass Probleme, die auf eine unsachgemäße Verwendung des Registrierungs-Editors zurückzuführen sind, behoben werden können. Die Verwendung des Registrierungs-Editors geschieht daher auf eigene Gefahr. Sichern Sie die Registrierung auf jeden Fall vor dem Bearbeiten ab.

Weitere Informationen zur Aktivierung von TLS auf der Sitedatenbank finden Sie unter CTX137556.

Installieren von TLS-Serverzertifikaten auf Controllern

Für HTTPS wird TLS vom XML-Dienst über Serverzertifikate, nicht aber über Clientzertifikate unterstützt. Nachfolgend finden Sie Anleitungen zum Abrufen eines Zertifikats und zur Installation und Registrierung auf einem Controller sowie zum Konfigurieren eines Ports mit dem SSL-Zertifikat:

Ändern von HTTP- oder HTTPS-Ports

Der XML-Dienst hört standardmäßig Port 80 auf HTTP-Datenverkehr und Port 443 auf HTTPS-Datenverkehr ab. Zwar können auch andere Ports verwendet werden, jedoch wird der Controller dabei nicht vertrauenswürdigen Netzwerken ausgeliefert, und es entsteht ein Sicherheitsrisiko. Das Bereitstellen eines eigenständigen StoreFront-Servers ist dem Ändern der Standardwerte vorzuziehen.

Zum Ändern der vom Controller verwendeten standardmäßigen HTTP- oder HTTPS-Ports führen Sie den folgenden Befehl in Studio aus: BrokerService.exe -WIPORT <http-port> -WISSLPORT <https-port>

<http-port> ist die Portnummer für HTTP-Datenverkehr und <https-port> ist die Portnummer für HTTPS-Datenverkehr.

Hinweis: Nachdem Sie einen Port geändert haben, zeigt Studio möglicherweise eine Meldung zu Lizenzkompatibilität und Upgrades an. Sie lösen das Problem, indem Sie Dienstinstanzen mit den folgenden PowerShell-Cmdlets neu registrieren:
Get-ConfigRegisteredServiceInstance -ServiceType Broker -Binding  XML_HTTPS | Unregister-ConfigRegisteredServiceInstance Get-BrokerServiceInstance | where Binding -eq "XML_HTTPS" |  Register-ConfigServiceInstance

Erzwingen von HTTPS-Datenverkehr

Wenn der XML-Dienst den HTTP-Datenverkehr ignorieren soll, legen Sie den folgenden Registrierungswert unter HKLM\Software\Citrix\DesktopServer\ auf dem Controller fest und starten Sie den Brokerdienst neu.

Um den HTTP-Datenverkehr zu ignorieren, legen Sie für XmlServicesEnableNonSsl 0 fest.

Es gibt einen entsprechenden Registrierungswert, damit der HTTPS-Datenverkehr ignoriert wird: XmlServicesEnableSsl. Stellen Sie sicher, dass er nicht auf 0 festgelegt ist.

TLS-Einstellungen auf VDAs

Wenn Sie TLS auf VDAs konfigurieren, werden Berechtigungen auf dem installierten SSL-Zertifikat geändert. Der ICA-Dienst erhält Lesezugriff für den privaten Schlüssel des Zertifikats und informiert den ICA-Dienst über Folgendes:

  • Das für TLS zu verwendende Zertifikat im Zertifikatspeicher
  • Die für TLS-Verbindungen zu verwendende TCP-Portnummer

    Die Windows-Firewall (wenn sie aktiviert ist) muss so konfiguriert sein, dass eingehende Verbindungen auf diesem TCP-Port zugelassen sind. Diese Konfiguration wird für Sie ausgeführt, wenn Sie das PowerShell-Skript verwenden.

  • Die zulässigen Versionen des TLS-Protokolls

Important

Citrix empfiehlt seinen Kunden den Einsatz von SSL Version 3 zu prüfen und die Konfiguration von Bereitstellungen soweit möglich dahingehend zu ändern, dass SSL Version 3 nicht mehr unterstützt wird. Weitere Informationen finden Sie unter CTX200238.

Die unterstützten SSL-Protokollversionen unterliegen einer Hierarchie (von der niedrigsten zur höchsten Version): TLS 3.0, TLS 1.0, TLS 1.1 und TLS 1.2. Wenn Sie die zulässige Mindestversion angeben, sind alle Protokollverbindungen, die diese Version oder eine höhere Version verwenden, zulässig.

Wenn Sie beispielsweise TLS 1.1 als Mindestversion angeben, werden auch TLS 1.1- und TLS 1.2-Protokollverbindungen zugelassen. Wenn Sie SSL 3.0 als Mindestversion angeben, sind Verbindungen für alle unterstützten Versionen zulässig. Wenn Sie TLS 1.2 als Mindestversion angeben, werden nur TLS 1.2-Verbindungen zugelassen.

  • Die zulässigen TLS-Verschlüsselungsverfahren

    Eine Verschlüsselungssammlung ist eine Liste gebräuchlicher TLS-Verschlüsselungsverfahren. Wenn ein Client eine Verbindung herstellt und eine Liste unterstützter TLS-Verschlüsselungsverfahren übermittelt, ordnet der VDA ein Verschlüsselungsverfahren des Clients einem Verschlüsselungsverfahren in der konfigurierten Verschlüsselungssammlung zu und akzeptiert die Verbindung. Wenn der Client ein Verschlüsselungsverfahren übermittelt, das nicht in der Verschlüsselungssammlung des VDAs ist, lehnt der VDA die Verbindung ab.

    Drei Verschlüsselungssammlungen werden unterstützt: GOV (Government), COM (Commercial) und ALL. Die Verschlüsselungsverfahren in diesen Verschlüsselungssammlungen hängen vom Windows FIPS-Modus ab. Weitere Informationen zum Windows FIPS-Modus finden Sie unter http://support.microsoft.com/kb/811833. In der folgenden Tabelle finden Sie die für die jeweilige Verschlüsselungssammlung unterstützten Verschlüsselungsverfahren.
    TLS-VerschlüsselungssammlungGOVCOMALLGOVCOMALL
    FIPS-ModusOffOffOffOnOnOn
    RSA_KEYXxxxxxx
    RSA_SIGNxxxxxx
    3DESx xx x
    RC4 xx   
    MD5xxx   
    SHAxxxxxx
    SHA_256xxxxxx
    SHA_384xxxxxx
    SHA_512xxxxxx
    AESxxxxxx

Eine Bereitstellungsgruppe darf nicht eine Mischung von VDAs mit und ohne konfiguriertem TLS enthalten. Wenn Sie TLS für eine Bereitstellungsgruppe konfigurieren, sollten Sie TLS bereits für alle VDAs in dieser Bereitstellungsgruppe konfiguriert haben.

Konfigurieren von TLS auf einem VDA mit dem PowerShell-Skript

Das Skript Enable-VdaSSL.ps1 aktiviert oder deaktiviert den TLS-Listener auf einem VDA. Dieses Skript ist im Ordner Support > Tools > SslSupport auf dem Installationsmedium verfügbar.

Wenn Sie TLS aktivieren, deaktiviert das Skript alle vorhandenen Windows-Firewallregeln für den angegebenen TCP-Port. Dann wird eine Regel hinzugefügt, die dem ICA-Dienst die Annahme eingehender Verbindungen nur auf dem TLS-TCP-Port gewährt. Außerdem werden die Windows-Firewallregeln für Folgendes deaktiviert:
  • Citrix ICA (Standard: 1494)
  • Citrix CGP (Standard: 2598)
  • Citrix WebSocket (Standard: 8008)

Als Folge können Benutzer Verbindungen nur über TLS herstellen und nicht über unformatiertes ICA, CGP oder WebSocket.

Das Skript enthält die folgenden Syntax-Beschreibungen sowie zusätzliche Beispiele. Sie können diese Informationen mit einem Tool wie Notepad++ überprüfen.

Sie müssen einen der Parameter –Enable oder –Disable angeben, alle anderen Parameter sind optional.

Syntax

Enable-VdaSSL {-Enable | -Disable} [–SSLPort <port>] [-SSLMinVersion "<min-ssl-version>"] [-SSLCipherSuite"<suite>"] [-CertificateThumbPrint "<thumbprint>"]

ParameterBeschreibung
-EnableInstalliert und aktiviert den TLS-Listener auf dem VDA. Dieser Parameter oder der Parameter –Disable ist erforderlich.
-DisableDeaktiviert den TLS-Listener auf dem VDA. Dieser Parameter oder der Parameter –Enable ist erforderlich. Wenn Sie diesen Parameter festlegen, sind keine anderen Parameter gültig.
–SSLPort <port>TLS port: Standard: 443
-SSLMinVersion "<min-ssl-version>"

Mindestversion des TLS-Protokolls zwischen Anführungszeichen. Gültige Werte: "SSL_3.0", "TLS_1.0", "TLS_1.1" und "TLS_1.2". Standard: "TLS_1.0"

Wichtig: Citrix empfiehlt seinen Kunden den Einsatz von SSL Version 3 zu prüfen und die Konfiguration von Bereitstellungen möglichst dahingehend zu ändern, dass SSL Version 3 nicht mehr unterstützt wird. Weitere Informationen finden Sie unter CTX200238.

-SSLCipherSuite "<suite>"TLS-Verschlüsselungssammlung zwischen Anführungszeichen. Gültige Werte: "GOV", "COM" und "ALL". Standard: "ALL"
-CertificateThumbPrint "<thumbprint>"Fingerabdruck des SSL-Zertifikats im Zertifikatspeicher, zwischen Anführungszeichen. Dieser Parameter wird normalerweise verwendet, wenn der Zertifikatspeicher über mehrere Zertifikate verfügt. Das Skript verwendet den Fingerabdruck, um das gewünschte Zertifikat auszuwählen. Standard: das erste verfügbare Zertifikat im Bereich "Lokaler Computer > Eigene Zertifikate > Zertifikate" des Zertifikatspeicher.

Beispiele

Das folgende Skript installiert und aktiviert den TLS 1.2-Versionswert.
Enable-VdaSSL –Enable
Das folgende Skript installiert und aktiviert den TLS-Listener und gibt den TLS-Port 400 an sowie die Verschlüsselungssammlung GOV und als Mindestprotokollversion "TLS 1.2 TLS".
Enable-VdaSSL – Enable –SSLPort 400 'SSLMinVersion "TLS_1.2"  –SSLCipherSuite "GOV"
Das folgende Skript deaktiviert den TLS-Listener auf dem VDA.
Enable-VdaSSL –Disable

Manuelle Konfiguration von TLS auf einem VDA

Bei der manuellen Konfiguration von TLS auf einem VDA gewähren Sie dem privaten Schlüssel des TLS-Zertifikats allgemeinen Lesezugriff für den entsprechenden Dienst auf jedem VDA: NT SERVICE\PorticaService für einen VDA für Windows-Desktopbetriebssysteme oder NT SERVICE\TermService für einen VDA für Windows-Serverbetriebssysteme. Führen Sie auf der Maschine, auf der der VDA installiert ist, folgende Schritte aus:
  1. Starten Sie die Microsoft Management Console (MMC): Start > Ausführen > mmc.exe.
  2. Fügen Sie dem MMC das Zertifikat-Snap-In hinzu:
    1. Wählen Sie Datei > Snap-In hinzufügen/entfernen.
    2. Wählen Sie Zertifikate aus und klicken Sie auf Hinzufügen.
    3. Wählen Sie unter "Dieses Snap-In verwaltet die Zertifikate für:" die Option Computerkonto und klicken Sie dann auf Weiter.
    4. Wählen Sie unter "Wählen Sie den Computer aus, den dieses Snap-In verwalten soll" die Option Lokalen Computer und klicken Sie dann auf Fertig stellen.
  3. Klicken Sie unter "Zertifikate (Lokaler Computer) > Eigene Zertifikate > Zertifikate" mit der rechten Maustaste auf das Zertifikat und wählen Sie Alle Aufgaben > Private Schlüssel verwalten.
  4. Im Zugriffssteuerungslisten-Editor wird "Permissions for <Anzeigename> private keys" angezeigt, wobei <Anzeigename> der Name des SSL-Zertifikats ist. Fügen Sie einen der folgenden Dienste hinzu und geben Sie ihm Lesezugriff:
    • Für einen VDA für Windows-Desktopbetriebssysteme "PORTICASERVICE"
    • Für einen VDA für Windows-Serverbetriebssysteme "TERMSERVICE"
  5. Doppelklicken Sie auf das installierte SSL-Zertifikat. Wählen Sie im Dialogfeld des Zertifikats die Registerkarte "Details" aus und führen Sie einen Bildlauf nach unten durch. Klicken Sie auf Fingerabdruck.
  6. Führen Sie regedit aus und navigieren Sie zu HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd.
    1. Bearbeiten Sie den SSL-Fingerabdruckschlüssel und kopieren Sie den Fingerabdruckwert des SSL-Zertifikats in den binären Wert. Sie können unbekannte Elemente im Dialogfeld Binärwert bearbeiten ignorieren (z. B. "0000" und Sonderzeichen).
    2. Bearbeiten Sie den Schlüssel "SSLEnabled" und ändern Sie den Wert für DWORD in "1". (Um SSL zu einem späteren Zeitpunkt zu deaktivieren, ändern Sie den Wert für DWORD in "0&".)
    3. Wenn Sie die Standardeinstellungen ändern möchten (optional), verwenden Sie Folgendes im gleichen Registrierungspfad:
      • SSLPort DWORD – SSL-Portnummer. Standard: 443.
      • SSLMinVersion DWORD – 1 = SSL 3.0, 2 = TLS 1.0, 3 = TLS 1.1, 4 = TLS 1.2. Standard: 2 (TLS 1.0).
      • SSLCipherSuite DWORD – 1 = GOV, 2 = COM, 3 = ALL. Standard: 3 (ALL).
  7. Stellen Sie sicher, dass der TLS-TCP-Port in der Windows-Firewall geöffnet ist, wenn Sie nicht den Standardport 443 verwenden. (Wenn Sie die eingehende Regel für die Windows-Firewall erstellen, wählen Sie in den Eigenschaften die Optionen "Verbindung zulassen" und "Aktiviert" aus.)
  8. Stellen Sie sicher, dass keine anderen Anwendungen oder Dienste (z. B. IIS) den TLS-TCP-Port verwenden.
  9. Damit die Änderungen auf VDAs für Windows-Serverbetriebssysteme wirksam werden, starten Sie die Maschine neu. (Sie brauchen Maschinen mit VDAs für Windows-Desktopbetriebssysteme nicht neu starten.)

Konfigurieren von TLS auf Bereitstellungsgruppen

Führen Sie diese Schritte für jede Bereitstellungsgruppe aus, die VDAs enthält, die Sie für TLS-Verbindungen konfiguriert haben.
  1. Öffnen Sie in Studio die PowerShell-Konsole.
  2. Führen Sie asnp Citrix.* aus, um die Citrix Produkt-Cmdlets zu laden.
  3. Führen Sie Get-BrokerAccessPolicyRule -DesktopGroupName '<delivery-group-name>' | Set-BrokerAccessPolicyRule -HdxSslEnabled $true aus.

    <delivery-group-name> ist der Name der Bereitstellungsgruppe mit den VDAs.

  4. Führen Sie Set-BrokerSite –DnsResolutionEnabled $true aus.

Problembehandlung

Wenn ein Verbindungsfehler auftritt, überprüfen Sie Systemereignisprotokoll des VDAs.

Wenn Sie Citrix Receiver für Windows verwenden und ein Verbindungsfehler auftritt (z. B. 1030), der auf einen TLS-Fehler hinweist, deaktivieren Sie Desktop Viewer und versuchen Sie erneut, die Verbindung herzustellen. Der Verbindungsfehler tritt zwar immer noch auf, aber u. U. wird eine Erklärung zu dem zugrunde liegenden TLS-Fehler angegeben (z. B. dass Sie beim Anfordern eines Zertifikats von der Zertifizierungsstelle die falsche Vorlage angegeben haben).

Kommunikation zwischen Controller und VDA

Die Kommunikation zwischen Controller und VDA wird auf Nachrichtenebene durch Windows Communication Framework (WCF) gesichert. Zusätzlicher Schutz auf Übertragungsebene durch TLS ist nicht erforderlich. Die WCF-Konfiguration verwendet Kerberos für die gegenseitige Authentifizierung von Controller und VDA. Die Verschlüsselung verwendet AES im CBC-Modus mit einem 256-Bit-Schlüssel. Für die Nachrichtenintegrität wird SHA-1 verwendet.