Transport Layer Security (TLS)
Citrix Virtual Apps and Desktops unterstützt das TLS-Protokoll (Transport Layer Security) für TCP-basierte Verbindungen zwischen Komponenten. Citrix Virtual Apps and Desktops unterstützt außerdem das Protokoll DTLS (Datagram Transport Layer Security) für UDP-basierte ICA-/HDX-Verbindungen unter Einsatz von adaptivem Transport.
TLS und DTLS ähneln einander und unterstützen die gleichen digitalen Zertifikate. Wird eine Citrix Virtual Apps- oder Citrix Virtual Desktops-Site für TLS konfiguriert, wird sie automatisch auch für DTLS konfiguriert. Verwenden Sie die nachstehenden Verfahren. Die meisten Schritte gelten für TLS und DTLS gleichermaßen, auf Ausnahmen wird ausdrücklich hingewiesen.
-
Rufen Sie ein Serverzertifikat ab und installieren und registrieren Sie es auf allen Delivery Controllern. Konfigurieren Sie einen Port mit dem TLS-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 der Citrix Workspace-App und Virtual Delivery Agents (VDAs) unter Ausführung der folgenden Schritte:
- Konfigurieren Sie TLS auf den Maschinen, auf denen die VDAs installiert sind. Der Einfachheit halber werden Maschinen, auf denen VDAs installiert sind, im Folgenden einfach als “VDAs” bezeichnet. Allgemeine Informationen finden Sie unter TLS-Einstellungen auf VDAs. Es wird dringend empfohlen, das von Citrix gelieferte PowerShell-Skript zum Konfigurieren von TLS/DTLS zu verwenden. Einzelheiten finden Sie unter Konfigurieren von TLS auf einem VDA mit dem PowerShell-Skript. Wenn Sie TLS/DTLS manuell konfigurieren möchten, lesen Sie den Abschnitt Manuelle Konfiguration von TLS auf einem VDA.
-
Konfigurieren Sie TLS in den Bereitstellungsgruppen, die die VDAs enthalten, indem Sie eine Reihe von PowerShell-Cmdlets in Studio ausführen. Einzelheiten finden Sie unter Konfigurieren von TLS auf Bereitstellungsgruppen.
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.
- Bei gepoolten, mit Maschinenerstellungsdiensten oder Provisioning Services bereitgestellten VDAs wird das VDA-Maschinenimage beim Neustart zurückgesetzt und vorherige TLS-Einstellungen gehen verloren. Führen Sie das PowerShell-Skript bei jedem VDA-Neustart aus, um die TLS-Einstellungen neu zu konfigurieren.
Warnung:
Vorsicht beim Bearbeiten der Windows-Registrierung: 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. Machen Sie auf jeden Fall ein Backup der Registrierung, bevor Sie sie bearbeiten.
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. In diesem Abschnitt wird das Beschaffen und Installieren von TLS-Zertifikaten für Delivery Controller beschrieben. Die gleichen Schritte können auf Cloud Connectors zum Verschlüsseln des STA- und XML-Datenverkehrs ausgeführt werden.
Es gibt verschiedene Arten von Zertifizierungsstellen und Methoden zum Anfordern von Zertifikaten. Die Erläuterungen hier basieren auf der Microsoft-Zertifizierungsstelle. Für die Microsoft-Zertifizierungsstelle muss eine Zertifikatvorlage mit dem Zweck “Serverauthentifizierung” veröffentlicht sein.
Wenn die Microsoft-Zertifizierungsstelle in eine Active Directory-Domäne oder die vertrauenswürdige Gesamtstruktur integriert ist, zu der die Delivery Controller gehören, können Sie ein Zertifikat über den Assistenten für die Zertifikatregistrierung des MMC-Snap-Ins Zertifikate beschaffen.
Anfordern und Installieren eines Zertifikats
- Öffnen Sie auf dem Delivery Controller die MMC-Konsole und fügen Sie das Zertifikat-Snap-In hinzu. Wählen Sie bei Aufforderung “Computerkonto” aus.
-
Erweitern Sie Persönlich > Zertifikate und verwenden Sie dann den Kontextmenübefehl Alle Aufgaben > Neues Zertifikat anfordern.
- Klicken Sie auf Weiter und erneut auf Weiter, um zu bestätigen, dass Sie das Zertifikat von der Active Directory-Registrierung erwerben.
-
Wählen Sie die Vorlage für das Zertifikat “Serverauthentifizierung” aus. Wenn die Vorlage automatisch einen Antragsteller enthält, können Sie auf Registrieren klicken, ohne weitere Details anzugeben.
-
Um weitere Details für die Zertifikatvorlage anzugeben, klicken Sie auf die Schaltfläche Details und konfigurieren Sie Folgendes:
Antragstellername: Wählen Sie “Allgemeiner Name” und geben Sie den FQDN des Delivery Controllers an.
Alternativer Name: Wählen Sie “DNS” und geben Sie den FQDN des Delivery Controllers an.
Konfigurieren des SSL-/TLS-Listener-Ports
- Öffnen Sie ein PowerShell-Befehlsfenster als Administrator der Maschine.
-
Führen Sie die folgenden Befehle aus, um die Anwendungs-GUID des Brokerdiensts zu erhalten:
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT $Service_Guid = Get-ChildItem HKCR:\Installer\Products -Recurse -Ea 0 | Where-Object { $key = $\_; $\_.GetValueNames() | ForEach-Object { $key.GetValue($\_) } | Where-Object { $\_ -like 'Citrix Broker Service' } } | Select-Object Name $Service_Guid.Name -match "[A-Z0-9]*$" $Guid = $Matches[0] [GUID]$Formatted_Guid = $Guid Remove-PSDrive -Name HKCR Write-Host "Broker Service Application GUID: $($Formatted_Guid)" -ForegroundColor Yellow <!--NeedCopy-->
-
Führen Sie die folgenden Befehle im selben PowerShell-Fenster aus, um den Fingerabdruck des zuvor installierten Zertifikats abzurufen:
$HostName = ([System.Net.Dns]::GetHostByName(($env:computerName))).Hostname $Thumbprint = (Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match ("CN=" + $HostName)}).Thumbprint -join ';' Write-Host -Object "Certificate Thumbprint for $($HostName): $($Thumbprint)" -Foreground Yellow <!--NeedCopy-->
-
Führen Sie die folgenden Befehle im selben PowerShell-Fenster aus, um den Broker Service SSL/TLS-Port zu konfigurieren und das Zertifikat für die Verschlüsselung zu verwenden:
$IPV4_Address = Test-Connection -ComputerName $HostName -Count 1 | Select-Object -ExpandProperty IPV4Address $IPPort = "$($IPV4_Address):443" $SSLxml = "http add sslcert ipport=$IPPort certhash=$Thumbprint appid={$Formatted_Guid}" $SSLxml | netsh . netsh http show sslcert <!--NeedCopy-->
Bei korrekter Konfiguration zeigt die Ausgabe des letzten Befehls .netsh http show sslcert
, dass der Listener den richtigen IP:port
verwendet und dass Application ID
der Anwendungs-GUID des Brokerdiensts entspricht.
Sofern die Server dem auf den Delivery Controllern installierten Zertifikat vertrauen, können Sie jetzt StoreFront-Delivery Controller und Citrix Gateway STA-Bindungen zur Verwendung von HTTPS anstelle von HTTP konfigurieren.
Hinweis:
Ist der Controller unter Windows Server 2016 und StoreFront unter Windows Server 2012 R2 installiert, muss die Reihenfolge der TLS-Verschlüsselungssammlungen auf dem Controller geändert werden. Diese Konfigurationsänderung ist bei Installation von Controller und StoreFront unter anderen Windows Server-Kombinationen nicht erforderlich.
Die Liste der Verschlüsselungssammlungen muss TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
oder TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
(oder beide) enthalten. Diese Verschlüsselungssammlungen müssen vor jeglichen TLS_DHE_
-Verschlüsselungssammlungen stehen.
- Navigieren Sie mit dem Microsoft Gruppenrichtlinien-Editor zu Computerkonfiguration > Administrative Vorlagen > Netzwerk > SSL-Konfigurationseinstellungen.
- Bearbeiten Sie die Richtlinie “Reihenfolge der SSL-Verschlüsselungssammlungen”. Standardmäßig ist diese Richtlinie auf “Nicht konfiguriert” festgelegt. Legen Sie diese Richtlinie auf Aktiviert fest.
- Bringen Sie die Verschlüsselungssammlungen in die richtige Reihenfolge und entfernen Sie alle Verschlüsselungssammlungen, die Sie nicht verwenden möchten.
Stellen Sie sicher, dass entweder TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
oder TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
vor TLS_DHE_
-Verschlüsselungssammlungen steht.
Siehe auch Prioritizing Schannel Cipher Suites auf Microsoft-MSDN.
Ändern von HTTP- oder HTTPS-Ports
Der XML-Dienst auf dem Controller 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>
die Portnummer für HTTPS-Datenverkehr.
Hinweis:
Nachdem Sie einen Port geändert haben, zeigt Studio möglicherweise eine Meldung zur 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
<!--NeedCopy-->
Erzwingen von HTTPS-Datenverkehr
Wenn der XML-Dienst den HTTP-Datenverkehr ignorieren soll, erstellen Sie die folgende Registrierungseinstellung unter HKLM\Software\Citrix\DesktopServer\ auf dem Controller und starten Sie den Brokerdienst neu.
Um den HTTP-Datenverkehr zu ignorieren, erstellen Sie DWORD XmlServicesEnableNonSsl und legen Sie den Eintrag auf 0 fest.
Es gibt einen entsprechenden DWORD-Registrierungswert, den Sie erstellen können, damit der HTTPS-Datenverkehr ignoriert wird: DWORD XmlServicesEnableSsl. Stellen Sie sicher, dass er nicht auf 0 festgelegt ist.
TLS-Einstellungen auf VDAs
Eine Bereitstellungsgruppe darf nicht eine Mischung von VDAs mit und ohne konfiguriertem TLS enthalten. Bevor Sie TLS für eine Bereitstellungsgruppe konfigurieren, müssen Sie TLS für alle darin enthaltenen VDAs konfigurieren.
Wenn Sie TLS auf VDAs konfigurieren, werden Berechtigungen auf dem installierten TLS-Zertifikat geändert. Der ICA-Dienst erhält Lesezugriff für den privaten Schlüssel des Zertifikats und wird über Folgendes informiert:
- Für TLS zu verwendendes 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.
-
Welche Versionen des TLS-Protokolls zulässig sind.
Wichtig:
Citrix empfiehlt 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. Siehe CTX200238.
Die unterstützten TLS-Protokollversionen unterliegen einer Hierarchie (von der niedrigsten zur höchsten Version): SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2 und TLS 1.3. Legen Sie die zulässige Mindestversion fest. Alle Protokollverbindungen, die diese Version oder eine höhere Version verwenden, sind dann zulässig.
Wenn Sie beispielsweise TLS 1.1 als Mindestversion angeben, werden auch TLS 1.1- und TLS 1.3-Protokollverbindungen zugelassen. Wenn Sie SSL 3.0 als Mindestversion angeben, sind Verbindungen für alle unterstützten Versionen zulässig. Wenn Sie TLS 1.3 als Mindestversion angeben, werden nur TLS 1.3-Verbindungen zugelassen.
DTLS 1.0 entspricht TLS 1.1 und DTLS 1.3 entspricht TLS 1.3.
-
Welche TLS-Verschlüsselungssammlungen zugelassen werden sollen.
Über eine Verschlüsselungssammlung wird die Verschlüsselung für eine Verbindung gewählt. Clients und VDAs können verschiedene Gruppen von Verschlüsselungssammlungen unterstützen. Wenn ein Client (Citrix Workspace-App oder StoreFront) eine Verbindung herstellt und eine Liste unterstützter TLS-Verschlüsselungssammlungen übermittelt, ordnet der VDA eine Verschlüsselungssammlung des Clients einer Sammlung in seiner eigenen Liste konfigurierter Verschlüsselungssammlungen zu und akzeptiert die Verbindung. Gibt es keine übereinstimmende Verschlüsselungssammlung, lehnt der VDA die Verbindung ab.
Der VDA unterstützt drei Verschlüsselungssammlungen (auch “Konformitätsmodi”): GOV (Government = Behörden), COM (Commercial = Kommerziell) und ALL (Alle). Welche Verschlüsselungssammlungen zulässig sind, hängt auch vom Windows FIPS-Modus ab. Weitere Informationen zum Windows FIPS-Modus finden Sie unter http://support.microsoft.com/kb/811833. Die folgende Tabelle enthält die Verschlüsselungssammlungen in jeder Gruppe:
TLS-/DTLS-Verschlüsselungssammlung | ALLE | COM | GOV | ALLE | COM | GOV |
---|---|---|---|---|---|---|
FIPS-Modus | Aus | Aus | Aus | Ein | Ein | Ein |
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384* | X | X | X | X | ||
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 | X | X | X | X | ||
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | X | X | X | X |
*Unter Windows Server 2012 R2 nicht unterstützt.
Hinweis:
Der VDA unterstützt keine DHE-Verschlüsselungssammlungen (z. B. TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 und TLS_DHE_RSA_WITH_AES_128_CBC_SHA). Wenn sie von Windows ausgewählt werden, können sie möglicherweise nicht von Receiver verwendet werden.
Wenn Sie ein Citrix Gateway verwenden, finden Sie in der Citrix ADC-Dokumentation Informationen zur Unterstützung der Verschlüsselungssammlung für die Back-End-Kommunikation. Informationen zur Unterstützung der TLS-Verschlüsselungssammlung finden Sie unter Ciphers available on the Citrix ADC appliances. Informationen zu für DTLS unterstützten Verschlüsselungssammlungen finden Sie unter DTLS-Unterstützung für Verschlüsselungssammlungen.
Anfordern und Installieren eines Zertifikats
- Öffnen Sie auf dem VDA die MMC-Konsole und fügen Sie das Zertifikat-Snap-In hinzu. Wählen Sie bei Aufforderung “Computerkonto” aus.
- Erweitern Sie Persönlich > Zertifikate und verwenden Sie dann den Kontextmenübefehl Alle Aufgaben > Neues Zertifikat anfordern.
- Klicken Sie auf Weiter und erneut auf Weiter, um zu bestätigen, dass Sie das Zertifikat von der Active Directory-Registrierung erwerben.
-
Wählen Sie die Vorlage für das Zertifikat “Serverauthentifizierung” aus. Es ist sowohl der standardmäßige Windows-Computer als auch Web Server Exportable zulässig. Wenn die Vorlage automatisch einen Antragsteller enthält, können Sie auf Registrieren klicken, ohne weitere Details anzugeben.
-
Um weitere Details für die Zertifikatvorlage anzugeben, klicken Sie auf Details und konfigurieren Sie Folgendes:
Antragstellername: Wählen Sie Allgemeiner Name und geben Sie den FQDN des VDAs an.
Alternativer Name: Wählen Sie DNS und geben Sie den FQDN des VDAs an.
Hinweis:
Verwenden Sie die automatische Registrierung von Active Directory-Zertifikatdienste-Zertifikaten zur Automatisierung des Ausstellens und Bereitstellens von Zertifikaten für die VDAs. Das Verfahren wird unter https://support.citrix.com/article/CTX205473 erläutert.
Sie können Platzhalterzertifikate verwenden, um mehrere VDAs mit einem einzelnen Zertifikat zu schützen:
Antragstellername: wählen Sie Allgemeiner Name und geben Sie die *.primary.domain der VDAs ein.
Alternativer Name: Wählen Sie DNS und geben Sie die *.primary.domain der VDAs an.
Sie können SAN-Zertifikate verwenden, um mehrere spezifische VDAs mit einem einzelnen Zertifikat zu schützen:
Antragstellername: wählen Sie Allgemeiner Name und geben Sie eine Zeichenfolge zur Identifizierung der Zertifikatnutzung ein.
Alternativer Name: Wählen Sie DNS und geben Sie einen Eintrag für den FQDN jedes VDAs an. Verwenden Sie ein Minimum alternativer Namen, um eine optimale TLS-Aushandlung zu gewährleisten.
Hinweis:
Sowohl für Platzhalter- als auch für SAN-Zertifikate muss Privaten Schlüssel exportierbar machen auf der Registerkarte “Privater Schlüssel” ausgewählt werden:
Konfigurieren von TLS auf einem VDA mit dem PowerShell-Skript
Installieren Sie das TLS-Zertifikat im Bereich Lokaler Computer > Eigene Zertifikate > Zertifikate des Zertifikatspeichers. Sind mehrere Zertifikate an diesem Speicherort, geben Sie den Fingerabdruck des Zertifikats im PowerShell-Skript an.
Hinweis:
Ab XenApp und XenDesktop 7.16 LTSR findet das PowerShell-Skript das richtige Zertifikat basierend auf dem FQDN des VDA. Sie brauchen den Fingerabdruck nicht angeben, wenn nur ein Zertifikat für den VDA-FQDN vorhanden ist.
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.
Wenn Sie TLS aktivieren, werden DHE-Verschlüsselungssammlung deaktiviert. ECDHE-Verschlüsselungssammlungen sind nicht betroffen.
Wenn Sie TLS aktivieren, deaktiviert das Skript alle vorhandenen Windows-Firewallregeln für den angegebenen TCP-Port. Anschließend wird eine neue Regel hinzugefügt, durch die der ICA-Service eingehende Verbindungen nur am TLS-, TCP- und UDP-Port annehmen kann. Außerdem werden die Windows-Firewallregeln für Folgendes deaktiviert:
- Citrix ICA (Standard: 1494)
- Citrix CGP (Standard: 2598)
- Citrix WebSocket (Standard: 8008)
Die Benutzer können nur über TLS oder DTLS eine Verbindung herstellen. Sie können ICA/HDX, ICA/HDX mit Sitzungszuverlässigkeit oder HDX über WebSocket nicht ohne TLS oder DTLS verwenden.
Hinweis:
DTLS wird nicht mit ICA/HDX-Audio über UDP Real-time Transport oder mit ICA/HDX Framehawk unterstützt.
Siehe Netzwerkports.
Das Skript enthält die folgenden Syntax-Beschreibungen sowie zusätzliche Beispiele. Sie können diese Informationen mit einem Tool wie Notepad++ lesen.
Wichtig:
Geben Sie den Parameter “Enable” oder “Disable” und den Parameter “CertificateThumbPrint” an. Die übrigen Parameter sind optional.
Syntax
Enable-VdaSSL {-Enable | -Disable} -CertificateThumbPrint "<thumbprint>" [-SSLPort <port>] [-SSLMinVersion "<min-ssl-version>"] [-SSLCipherSuite"\<suite>"]
Parameter | Beschreibung |
---|---|
Aktivieren | Installiert und aktiviert den TLS-Listener auf dem VDA. Es ist dieser Parameter oder der Parameter “Disable” erforderlich. |
Deaktivieren | Deaktiviert den TLS-Listener auf dem VDA. Es ist dieser Parameter oder der Parameter “Enable” erforderlich. Wenn Sie diesen Parameter festlegen, sind keine anderen Parameter gültig. |
CertificateThumbPrint “ |
Fingerabdruck des TLS-Zertifikats im Zertifikatspeicher in Anführungszeichen. Das Skript verwendet den angegebenen Fingerabdruck zur Auswahl des gewünschten Zertifikats. Wird dieser Parameter ausgelassen, wird ein falsches Zertifikat ausgewählt. |
SSLPort |
TLS port. Standard: 443. |
SSLMinVersion “ |
Mindestversion des TLS-Protokolls zwischen Anführungszeichen. Gültige Werte: “TLS_1.0” (Standard), “TLS_1.1” und “TLS_1.3”. |
SSLCipherSuite “ |
TLS-Verschlüsselungssammlung zwischen Anführungszeichen. Gültige Werte: “GOV”, “COM” und “ALL” (Standardwert). |
Beispiele
Das folgende Skript installiert und aktiviert den TLS-Versionswert. Der Fingerabdruck (im Beispiel dargestellt als “12345678987654321”) dient zur Auswahl des Zertifikats, das verwendet werden soll.
Enable-VdaSSL -Enable -CertificateThumbPrint "12345678987654321"
Das folgende Skript installiert und aktiviert den TLS-Listener und gibt den TLS-Port 400 an sowie die Verschlüsselungssammlung GOV (Behörden) und als Mindestprotokollversion “TLS 1.2”. Der Fingerabdruck (im Beispiel dargestellt als “12345678987654321”) dient zur Auswahl des Zertifikats, das verwendet werden soll.
Enable-VdaSSL -Enable
-CertificateThumbPrint "12345678987654321"
-SSLPort 400 -SSLMinVersion "TLS_1.3"
-SSLCipherSuite "All"
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-Einzelsitzungs-OS oder NT SERVICE\TermService für einen VDA für Windows-Multisitzungs-OS. Führen Sie auf der Maschine, auf der der VDA installiert ist, folgende Schritte aus:
Schritt 1. Starten Sie Microsoft Management Console (MMC): Start > Ausführen > mmc.exe.
Schritt 2. Fügen Sie dem MMC das Zertifikat-Snap-In hinzu:
- Wählen Sie Datei > Snap-In hinzufügen/entfernen.
- Wählen Sie Zertifikate aus, und klicken Sie dann auf Hinzufügen.
- Wählen Sie unter “Dieses Snap-In verwaltet die Zertifikate für:” die Option “Computerkonto” und klicken Sie dann auf “Weiter”.
- 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”.
Schritt 3: Klicken Sie unter Zertifikate (Lokaler Computer) > Persönlich > Zertifikate mit der rechten Maustaste auf das Zertifikat und wählen Sie dann Alle Aufgaben > Private Schlüssel verwalten.
Schritt 4. Im Zugriffssteuerungslisten-Editor wird “Permissions for (FriendlyName) private keys” angezeigt, wobei (FriendlyName) der Name des TLS-Zertifikats ist. Fügen Sie einen der folgenden Dienste hinzu und geben Sie ihm Lesezugriff:
- Für einen VDA für Windows-Einzelsitzungs-OS: “PORTICASERVICE”
- Für einen VDA für Windows-Multisitzungs-OS: “TERMSERVICE”
Schritt 5. Doppelklicken Sie auf das installierte TLS-Zertifikat. Wählen Sie im Dialogfeld “Zertifikat” die Registerkarte Details und scrollen Sie dann nach unten. Klicken Sie auf Fingerabdruck.
Schritt 6. Führen Sie regedit aus und navigieren Sie zu HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd.
- Bearbeiten Sie den SSL-Fingerabdruckschlüssel und kopieren Sie den Fingerabdruckwert des TLS-Zertifikats in den binären Wert. Sie können unbekannte Elemente im Dialogfeld Binärwert bearbeiten ignorieren (z. B. “0000” und Sonderzeichen).
- 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&”.)
-
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.3. Standard: 2 (TLS 1.0).
SSLCipherSuite DWORD – 1 = GOV, 2 = COM, 3 = ALL. Standard: 3 (ALL).
Schritt 7. Stellen Sie sicher, dass der TLS-TCP- und der UDP-Port in der Windows-Firewall geöffnet sind, wenn nicht der Standardport 443 verwendet wird. (Wenn Sie die eingehende Regel für die Windows-Firewall erstellen, wählen Sie in den Eigenschaften die Optionen “Verbindung zulassen” und “Aktiviert” aus.)
Schritt 8: Stellen Sie sicher, dass keine anderen Anwendungen oder Dienste (z. B. IIS) den TLS-TCP-Port verwenden.
Schritt 9. Damit die Änderungen auf VDAs für Windows-Multisitzungs-OS wirksam werden, starten Sie die Maschine neu. (Sie brauchen Maschinen mit VDAs für Windows-Einzelsitzungs-OS nicht neu starten.)
Wichtig:
Ein zusätzlicher Schritt ist erforderlich, wenn der VDA unter Windows Server 2012 R2, Windows Server 2016 oder Windows 10 Anniversary Edition oder einer unterstützten Nachfolgeversion ausgeführt wird. Dies betrifft Verbindungen von Citrix Receiver für Windows (Version 4.6 bis 4.9), Citrix Workspace-App für HTML5 und Citrix Workspace-App für Chrome. Außerdem sind Verbindungen mit Citrix Gateway betroffen.
Dieser Schritt ist auch für alle Verbindungen mit Citrix Gateway für alle VDA-Versionen erforderlich, wenn TLS zwischen dem Citrix Gateway und dem VDA konfiguriert ist. Dies betrifft alle Citrix Receiver-Versionen.
Rufen Sie auf dem VDA (Windows Server 2012 R2, Windows Server 2016 oder Windows 10 Anniversary Edition oder höher) im Gruppenrichtlinien-Editor “Computerkonfiguration > Richtlinien > Administrative Vorlagen > Netzwerk > SSL-Konfigurationseinstellungen > Reihenfolge der SSL-Verschlüsselungssammlungen” auf. Wählen Sie die folgende Reihenfolge:
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256
Hinweis:
Die ersten sechs Elemente spezifizieren auch die elliptische Kurve (P384 oder P256). Stellen Sie sicher, dass “curve25519” nicht ausgewählt ist. Der FIPS-Modus verhindert die Verwendung von “curve25519” nicht.
Wenn diese Gruppenrichtlinieneinstellung konfiguriert ist, wählt der VDA eine Verschlüsselungssammlung nur, wenn sie in beiden Listen (Liste der Gruppenrichtlinie und Konformitätsmodusliste, d. h. COM, GOV oder ALL) enthalten ist. Die Verschlüsselungssammlung muss auch auf der vom Client (Citrix Workspace-App oder StoreFront) gesendeten Liste stehen.
Diese Gruppenrichtlinienkonfiguration wirkt sich auch auf andere TLS-Anwendungen und -Dienste auf dem VDA aus. Wenn Ihre Anwendungen bestimmte Verschlüsselungssammlungen erfordern, müssen Sie diese möglicherweise der Gruppenrichtlinienliste hinzufügen.
Wichtig:
Gruppenrichtlinienänderungen werden zwar bei ihrer Anwendung angezeigt, Gruppenrichtlinienänderungen an der TLS-Konfiguration werden jedoch erst nach einem Neustart des Betriebssystems wirksam. Wenden Sie daher für gepoolte Desktops die Gruppenrichtlinienänderungen an der TLS-Konfiguration auf das Basisimage an.
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.
- Öffnen Sie in Studio die PowerShell-Konsole.
- Führen Sie asnp Citrix.* aus, um die Citrix Produkt-Cmdlets zu laden.
- Führen Sie Get-BrokerAccessPolicyRule -DesktopGroupName ‘<delivery-group-name>’ | Set-BrokerAccessPolicyRule -HdxSslEnabled $true aus.
- Führen Sie Set-BrokerSite –DnsResolutionEnabled $true aus.
Problembehandlung
Wenn ein Verbindungsfehler auftritt, überprüfen Sie das Systemereignisprotokoll auf dem VDA.
Tritt bei Verwendung der Citrix Workspace-App für Windows ein TLS-Verbindungsfehler auf, deaktivieren Sie Desktop Viewer und versuchen Sie eine neue Verbindung. Die Verbindung wird zwar dennoch fehlschlagen, es wird jedoch möglicherweise eine Erklärung zu der Ursache angegeben. Beispielsweise könnten Sie beim Anfordern eines Zertifikats von der Zertifizierungsstelle eine falsche Vorlage angegeben haben.
Die meisten Konfigurationen, bei denen der adaptive HDX-Transport eingesetzt wird, funktionieren mit DTLS. Das gilt auch für diejenigen mit den aktuellen Versionen der Citrix Workspace-App, von Citrix Gateway und des VDAs. Bei einigen Konfigurationen, bei denen zwischen Citrix Workspace-App und Citrix Gateway und zwischen Citrix Gateway und dem VDA DTLS verwendet wird, sind zusätzliche Maßnahmen erforderlich.
Zusätzliche Maßnahmen sind erforderlich, wenn:
- die Citrix Receiver-Version den adaptiven HDX-Transport und DTLS unterstützt (Receiver für Windows 4.7, 4.8, 4.9, Receiver für Mac 12.5, 12.6, 12.7, Receiver für iOS 7.2, 7.3.x und Receiver für Linux 13.7)
und eine der folgenden Bedingungen zutrifft:
-
Die Citrix Gateway-Version unterstützt DTLS für den Datenverkehr an den VDA, doch die VDA-Version unterstützt DTLS nicht (Versionen bis einschließlich 7.15).
-
Die VDA-Version unterstützt DTLS (ab Version 7.16), doch die Citrix Gateway-Version unterstützt DTLS für den Datenverkehr an den VDA nicht.
Führen Sie einen der folgenden Schritte aus, um zu verhindern, dass Verbindungen von Citrix Receiver fehlschlagen:
- Aktualisieren Sie Citrix Receiver für Windows auf Version 4.10 oder höher, Receiver für Mac auf Version 12.8 oder höher bzw. Receiver für iOS auf Version 7.5 oder höher.
- Aktualisieren Sie Citrix Gateway auf eine Version, die DTLS für den Datenverkehr an den VDA unterstützt.
- Aktualisieren Sie den VDA auf Version 7.16 oder höher.
- Deaktivieren Sie DTLS auf dem VDA.
- Deaktivieren Sie den adaptiven HDX-Transport.
Hinweis:
Ein geeignetes Update für Receiver für Linux ist noch nicht verfügbar. Receiver für Android (Version 3.12.3) unterstützt den adaptiven HDX-Transport und DTLS über Citrix Gateway nicht und ist daher nicht betroffen.
Um DTLS am VDA zu deaktivieren, deaktivieren Sie den UDP-Port 443 in der VDA-Firewallkonfiguration. Siehe Netzwerkports.
Kommunikation zwischen Controller und VDA
Die Kommunikation zwischen Controller und VDA wird auf Nachrichtenebene durch Windows Communication Framework (WCF) geschützt. 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.
Laut Microsoft entsprechen die Sicherheitsprotokolle von WCF den OASIS-Standards (Organization for the Advancement of Structured Information Standards), einschließlich WS-SecurityPolicy 1.2. Darüber hinaus unterstützt WCF laut Microsoft sämtliche unter SecurityPolicy 1.2 aufgeführten Algorithmussammlungen.
Für die Kommunikation zwischen Controller und VDA wird die Algorithmussammlung basic256 verwendet, deren Algorithmen wie oben angegeben sind.
TLS- und HTML5-Videoumleitung und Browserinhaltsumleitung
Sie können mit der HTML5-Videoumleitung und der Browserinhaltsumleitung HTTPS-Websites umleiten. Das in diese Websites eingefügte JavaScript muss eine TLS-Verbindung mit dem auf dem VDA ausgeführten Citrix Service zur HDX-HTML5-Videoumleitung herstellen. Dazu generiert der HTML5-Videoumleitungsdienst zwei benutzerdefinierte Zertifikate im Zertifikatspeicher auf dem VDA. Durch das Beenden des Diensts werden auch die Zertifikate entfernt.
Die HTML5-Videoumleitungsrichtlinie ist standardmäßig deaktiviert.
Die Browserinhaltsumleitung ist standardmäßig aktiviert.
Weitere Informationen zur HTML5-Videoumleitung finden Sie unter Richtlinieneinstellungen für Multimedia.