Product Documentation

SSL

Jul 13, 2016
Das Konfigurieren einer XenApp- oder XenDesktop-Site zur Verwendung des SSL-Sicherheitsprotokolls (Secure Sockets Layer) 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 SSL-Serverzertifikaten auf Controllern.

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

  • Aktivieren Sie SSL-Verbindungen zwischen Benutzern und Virtual Delivery Agents (VDAs) mit den folgenden Schritten:
    Anforderungen und Überlegungen:
    • Das Aktivieren von SSL-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 SSL in den Bereitstellungsgruppen und auf den VDAs nach der Installation von Komponenten sowie nach dem Erstellen von Sites, Maschinenkatalogen und Bereitstellungsgruppen.
    • Zum Konfigurieren von SSL in den Bereitstellungsgruppen müssen Sie die Berechtigung zum Ändern der Zugriffsregeln für Controller haben; ein Volladministrator hat diese Berechtigung.
    • Zum Konfigurieren von SSL auf den VDAs müssen Sie ein Windows-Administrator auf der Maschine sein, auf der der VDA installiert ist.
    • Wenn Sie SSL 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 SSL 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 SSL auf der Sitedatenbank finden Sie unter CTX137556.

Installieren von SSL-Serverzertifikaten auf Controllern

Für HTTPS wird SSL 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.

SSL-Einstellungen auf VDAs

Wenn Sie SSL 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 SSL zu verwendende Zertifikat im Zertifikatspeicher
  • Die für SSL-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 SSL-Protokolls.

    Die unterstützten SSL-Protokollversionen unterliegen einer Hierarchie (von der niedrigsten zur höchsten Version): SSL 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 SSL-Verschlüsselungsverfahren.

    Eine Verschlüsselungssammlung ist eine Liste gebräuchlicher SSL-Verschlüsselungsverfahren. Wenn ein Client eine Verbindung herstellt und eine Liste unterstützter SSL-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.
    SSL-Verschlüsselungssammlung GOV COM ALL GOV COM ALL
    FIPS-Modus Aus Aus Aus Ein Ein Ein
    RSA_KEYX x x x x x x
    RSA_SIGN x x x x x x
    3DES x x x x
    RC4 x x
    MD5 x x x
    SHA x x x x x x
    SHA_256 x x x x x x
    SHA_384 x x x x x x
    SHA_512 x x x x x x
    AES x x x x x x

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

Konfigurieren von SSL auf einem VDA mit dem PowerShell-Skript

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

Wenn Sie SSL 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 SSL-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 SSL 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>”]

Parameter Beschreibung
-Enable Installiert und aktiviert den SSL-Listener auf dem VDA. Dieser Parameter oder der Parameter –Disable ist erforderlich.
-Disable Deaktiviert den SSL-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> SSL port: Standard: 443
-SSLMinVersion "<min-ssl-version>" Mindestversion des SSL-Protokolls, zwischen Anführungszeichen. Gültige Werte: "SSL_3.0", "TLS_1.0", "TLS_1.1" und "TLS_1.2". Standard: "TLS_1.0"
-SSLCipherSuite "<suite>" SSL-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 SSL-Listener. Für alle optionalen Parameter werden Standardwerte verwendet.
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 "SSL 1.2 SSL".
Enable-VdaSSL – Enable –SSLPort 400 ‘SSLMinVersion “TLS_1.2”  –SSLCipherSuite “GOV”
Das folgende Skript deaktiviert den SSL-Listener auf dem VDA.
Enable-VdaSSL –Disable

Manuelle Konfiguration von SSL auf einem VDA

Bei der manuellen Konfiguration von SSL auf einem VDA gewähren Sie dem privaten Schlüssel des SSL-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. In der Zugriffssteuerungsliste wird "Berechtigungen für <FriendlyName> private keys" angezeigt, wobei <FriendlyName> 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 SSL-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 SSL-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 SSL auf Bereitstellungsgruppen

Führen Sie diese Schritte für jede Bereitstellungsgruppe aus, die VDAs enthält, die Sie für SSL-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 Receiver für Windows verwenden und ein Verbindungsfehler auftritt (z. B. 1030), der auf einen SSL-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 SSL-Fehler angegeben (z. B. dass Sie beim Anfordern eines Zertifikats von der Zertifizierungsstelle die falsche Vorlage angegeben haben).