TLS auf Delivery Controllern aktivieren
Standardmäßig sind sowohl HTTP als auch HTTPS aktiviert. HTTPS verwendet ein selbstsigniertes Zertifikat, das den FQDN des Servers als allgemeinen Namen verwendet und von StoreFront™ oder Webbrowsern nicht als vertrauenswürdig eingestuft wird.
Um TLS auf einem delivery controller™ zu aktivieren, müssen Sie:
-
Ein Serverzertifikat auf allen Delivery Controllern abrufen, installieren und registrieren. Weitere Informationen finden Sie unter Anfordern und Installieren eines Zertifikats.
-
Einen Port mit dem TLS-Zertifikat konfigurieren. Weitere Informationen finden Sie unter Installieren eines Zertifikats.
- HTTPS für den Überwachungsdienst aktivieren.
-
HTTPS-Datenverkehr erzwingen, indem HTTP deaktiviert wird. Weitere Informationen finden Sie unter Nur HTTPS-Datenverkehr erzwingen.
- Optional können Sie die Ports ändern, die der Controller zum Abhören von HTTP- und HTTPS-Datenverkehr verwendet. Weitere Informationen finden Sie unter HTTP- oder HTTPS-Ports ändern.
Anfordern und Installieren eines Zertifikats
Um TLS zu verwenden, müssen Sie ein Zertifikat installieren, dessen Common Name oder Subject Alternative Name mit dem FQDN des Servers übereinstimmt. Wenn Sie einen Lastenausgleich vor den Delivery Controllern verwenden, fügen Sie sowohl den FQDN des Servers als auch den des Lastenausgleichs als Subject Alternative Names hinzu. Weitere Informationen finden Sie unter Zertifikate. Damit StoreFront eine Verbindung zum Delivery Controller herstellen kann, müssen Sie einen RSA-Algorithmus für digitale Signaturen verwenden. StoreFront unterstützt keine Zertifikate, die den ECDSA-Algorithmus verwenden.
Konfigurieren des SSL/TLS-Listener-Ports
Wenn die IIS-Windows-Komponente auf demselben Server installiert ist, was als Teil von Web Studio und Director geschieht, können Sie TLS mithilfe von IIS konfigurieren. Weitere Informationen finden Sie unter TLS auf Web Studio und Director aktivieren. Andernfalls gehen Sie wie folgt vor, um das Zertifikat mithilfe von PowerShell zu konfigurieren:
-
Um zu überprüfen, ob ein vorhandenes Zertifikat gebunden ist, öffnen Sie eine Eingabeaufforderung und führen Sie
netsh http show sslcertaus:netsh http show sslcert <!--NeedCopy--> -
Wenn eine vorhandene Bindung vorhanden ist, löschen Sie diese.
netsh http delete sslcert ipport=0.0.0.0:443 <!--NeedCopy-->0.0.0.0:443durch eine bestimmte IP-Adresse und einen Port ersetzen, falls in der vorhandenen Bindung eine angegeben wurde. -
Suchen Sie den Fingerabdruck des zuvor installierten Zertifikats. Um den Fingerabdruck anzuzeigen, öffnen Sie Computerzertifikate verwalten, navigieren Sie zum Zertifikat, öffnen Sie es und wechseln Sie zur Registerkarte Details.

Alternativ können Sie PowerShell verwenden. Das folgende Skript sucht beispielsweise nach einem Zertifikat, dessen allgemeiner Name mit dem Hostnamen des Servers übereinstimmt, und gibt den Fingerabdruck aus:
$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-->Wenn der allgemeine Name des Zertifikats nicht mit den Hostnamen übereinstimmt, schlägt dies fehl. Wenn mehrere Zertifikate für den Hostnamen vorhanden sind, werden mehrere Fingerabdrücke aneinandergereiht zurückgegeben, und Sie müssen den entsprechenden Fingerabdruck auswählen.
Das folgende Beispiel sucht nach einem Zertifikat anhand des Anzeigenamens:
$friendlyName = "My certificate name" $Thumbprint = (Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.FriendlyName -eq $friendlyNam}).Thumbprint -join ';' Write-Host -Object "Certificate Thumbprint for $friendlyName: $($Thumbprint)" -Foreground Yellow <!--NeedCopy-->Wenn mehrere Zertifikate mit dem angegebenen Anzeigenamen vorhanden sind, werden mehrere Fingerabdrücke aneinandergereiht zurückgegeben, und Sie müssen den entsprechenden Fingerabdruck auswählen.
-
Um das Zertifikat an den Port zu binden, verwenden Sie den Befehl
netsh http add sslcert:netsh http add sslcert ipport=[IP address]:443 certhash=[certificate hash] appid=[application GUID] disablelegacytls=enable <!--NeedCopy-->-
ipport: Die IP-Adresse und der Port. Die Verwendung von 0.0.0.0:443 wendet dies auf alle IP-Adressen an. Sie können stattdessen eine bestimmte IP-Adresse angeben. -
certhash: Der Fingerabdruck des Zertifikats, das Sie im vorherigen Schritt identifiziert haben. -
appid: Die GUID des Citrix Broker Service.Hinweis:
Beim Erneuern eines Zertifikats oder beim erneuten Binden verwenden Sie die spezifische
appid, die dem Broker Service zugeordnet ist, anstatt einer beliebigen GUID.So finden Sie die richtige
appidfür den Citrix Broker Service:-
Öffnen Sie ein PowerShell-Befehlsfenster als Administrator und führen Sie den folgenden Befehl aus:
Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker" <!--NeedCopy--> -
Suchen Sie die IdentifyingNumber (GUID) für den Citrix Broker Service in der Ausgabe (z. B.
{D333C884-187F-447C-8C67-463F33989C8F}). Verwenden Sie diese GUID für denappid-Parameter.
-
-
disablelegacytls=enable: Deaktiviert ältere TLS-Versionen. Dieser Parameter ist unter Windows 2022 und höher verfügbar. Unter Windows 2022 deaktiviert er TLS 1.0 und 1.1. Unter Windows 2025 ist dies unnötig, da TLS 1.0 und 1.1 standardmäßig deaktiviert sind.
Führen Sie beispielsweise den folgenden Befehl aus, um das Zertifikat mit dem Fingerabdruck
bc96f958848639fd101a793b87915d5f2829b0b6an Port443auf allen IP-Adressen zu binden:netsh http add sslcert ipport=0.0.0.0:443 certhash=bc96f958848639fd101a793b87915d5f2829b0b6 appid={91fe7386-e0c2-471b-a252-1e0a805febac} disablelegacytls=enable <!--NeedCopy--> -
Sobald HTTPS aktiviert ist, sollten Sie alle StoreFront-Bereitstellungen und NetScaler Gateways so konfigurieren, dass sie HTTPS anstelle von HTTP verwenden, um eine Verbindung zum Delivery Controller herzustellen.
Monitor Service OData API für HTTPS konfigurieren
Der Überwachungsdienst stellt OData v3- und v4-APIs bereit, damit Citrix®- und Drittanbieteranwendungen Daten abfragen können. Director stellt über die OData API V3 eine Verbindung zum Überwachungsdienst her. Um die Monitor OData APIs für HTTPS zu konfigurieren, führen Sie die folgenden Schritte aus:
-
Führen Sie das folgende PowerShell-Skript aus:
$serviceGroup = Get-ConfigRegisteredServiceInstance -ServiceType Monitor | Select -First 1 ServiceGroupUid Remove-ConfigServiceGroup -ServiceGroupUid $serviceGroup.ServiceGroupUid & 'C:\Program Files\Citrix\Monitor\Service\citrix.monitor.exe' -ConfigureFirewall -RequireODataTls –OdataPort 443 -RequireODataSdkTls –OdataSdkPort 443 get-MonitorServiceInstance | register-ConfigServiceInstance Get-ConfigRegisteredServiceInstance -ServiceType Config | Reset-MonitorServiceGroupMembership <!--NeedCopy--> -
Öffnen Sie die Datei
C:\Program Files\Citrix\Monitor\Service\Citrix.Monitor.exe.Configmit einem Texteditor. Suchen Sie das Element<add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" />und ändern Sie es in<add key="owin:baseAddress" value="https://localhost/citrix/monitor/odata/v4" />.
Cipher Suites konfigurieren
Die Reihenfolge der Cipher Suites muss die TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384- oder TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256-Cipher Suites (oder beide) enthalten; und diese Cipher Suites müssen vor allen TLS_DHE_-Cipher Suites stehen.
- Navigieren Sie im Microsoft Gruppenrichtlinien-Editor zu Computerkonfiguration > Administrative Vorlagen > Netzwerk > SSL-Konfigurationseinstellungen.
- Bearbeiten Sie die Richtlinie „SSL-Cipher-Suite-Reihenfolge“. Standardmäßig ist diese Richtlinie auf „Nicht konfiguriert“ eingestellt. Setzen Sie diese Richtlinie auf „Aktiviert“.
- Ordnen Sie die Suites in der richtigen Reihenfolge an; entfernen Sie alle Cipher Suites, 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 allen TLS_DHE_-Cipher Suites steht.
Siehe auch Konfigurieren der TLS-Cipher-Suite-Reihenfolge auf Microsoft Learn.
Nur HTTPS-Datenverkehr erzwingen
Es wird empfohlen, den XML-Dienst so zu konfigurieren, dass er HTTP-Datenverkehr ignoriert.
- Führen Sie
regeditaus. - Öffnen Sie
HKLM\Software\Citrix\DesktopServer\. - Erstellen Sie einen neuen DWORD-Wert mit dem Namen
XmlServicesEnableNonSslund setzen Sie ihn auf 0. - Starten Sie den Broker-Dienst neu.
Es gibt einen entsprechenden Registrierungs-DWORD-Wert XmlServicesEnableSsl, den Sie erstellen können, um HTTPS-Datenverkehr zu ignorieren. Stellen Sie sicher, dass er nicht auf 0 gesetzt ist.
HTTP- oder HTTPS-Ports ändern
Standardmäßig lauscht der XML-Dienst auf dem Controller an Port 80 für HTTP-Datenverkehr und an Port 443 für HTTPS-Datenverkehr. Obwohl Sie nicht standardmäßige Ports verwenden können, sollten Sie sich der Sicherheitsrisiken bewusst sein, die mit der Exposition eines Controllers gegenüber nicht vertrauenswürdigen Netzwerken verbunden sind. Die Bereitstellung eines eigenständigen StoreFront-Servers ist dem Ändern der Standardeinstellungen vorzuziehen.
Um die vom Controller verwendeten Standard-HTTP- oder HTTPS-Ports zu ändern, führen Sie den folgenden Befehl aus Studio aus:
BrokerService.exe -StoreFrontPort <http-port> -StoreFrontTlsPort <https-port>
<!--NeedCopy-->
wobei <http-port> die Portnummer für HTTP-Datenverkehr und <https-port> die Portnummer für HTTPS-Datenverkehr ist.
Hinweis:
Nach dem Ändern eines Ports zeigt Studio möglicherweise eine Meldung zur Lizenzkompatibilität und zum Upgrade an. Um das Problem zu beheben, registrieren Sie die Dienstinstanzen mithilfe der folgenden PowerShell-Cmdlet-Sequenz neu:
Get-ConfigRegisteredServiceInstance -ServiceType Broker -Binding XML_HTTPS |
Unregister-ConfigRegisteredServiceInstance
Get-BrokerServiceInstance | where Binding -eq "XML_HTTPS" |
Register-ConfigServiceInstance
<!--NeedCopy-->