TLS auf Delivery Controllern aktivieren
Um TLS auf einem Delivery Controller™ zu aktivieren, müssen Sie:
-
Ein Serverzertifikat auf allen Delivery Controllern beziehen, 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 Anfordern und Installieren eines Zertifikats.
-
HTTPS-Verkehr erzwingen, indem HTTP deaktiviert wird. Weitere Informationen finden Sie unter Nur HTTPS-Verkehr erzwingen.
-
Optional können Sie die Ports ändern, die der Controller zum Abhören von HTTP- und HTTPS-Verkehr 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 alternativer Name den FQDN des DDC enthält. Sie müssen ein geeignetes Zertifikat erstellen. Dies kann mit einer Microsoft-Zertifizierungsstelle oder anderen internen oder externen Zertifizierungsstellen erfolgen.
Zertifikat mit einer Microsoft-Zertifizierungsstelle erstellen
Wenn die Microsoft-Zertifizierungsstelle in eine Active Directory-Domäne oder in die vertrauenswürdige Gesamtstruktur integriert ist, der die Delivery Controller beigetreten sind, können Sie ein Zertifikat über den Zertifikatsregistrierungs-Assistenten des MMC-Snap-Ins „Zertifikate“ abrufen. Die Microsoft-Zertifizierungsstelle muss eine Zertifikatvorlage veröffentlicht haben, die für die Verwendung durch Webserver geeignet ist. Wenn Sie ein Citrix Gateway oder einen StoreFront™-Server in einer anderen Domäne verwenden, müssen Sie das Stammzertifizierungsstellen-Zertifikat exportieren und in das Citrix Gateway und StoreFront importieren.
-
Öffnen Sie auf dem Delivery Controller die MMC-Konsole und fügen Sie das Snap-In „Zertifikate“ 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, um zu beginnen, und erneut auf Weiter, um zu bestätigen, dass Sie das Zertifikat über die Active Directory-Registrierung abrufen.
-
Wählen Sie eine geeignete Vorlage aus, z. B. Webserver exportierbar. Wenn die Vorlage so eingerichtet wurde, dass sie die Werte für den Betreff automatisch bereitstellt, können Sie auf Registrieren klicken, ohne weitere Details anzugeben.

-
Um weitere Details für die Zertifikatvorlage anzugeben, klicken Sie auf die Pfeilschaltfläche Details und konfigurieren Sie Folgendes:
Antragstellername: Wählen Sie Allgemeiner Name und fügen Sie den FQDN des Liefer-Controllers hinzu.
Alternativer Name: Wählen Sie DNS und fügen Sie den FQDN des Liefer-Controllers hinzu.

-
Klicken Sie auf OK.
-
Klicken Sie auf Registrieren, um das Zertifikat zu erstellen und zu installieren.
Vorhandene Zertifikatdatei installieren
Wenn Sie ein vorhandenes Zertifikat als Datei haben, können Sie es installieren:
-
Öffnen Sie auf dem Liefer-Controller die MMC-Konsole und fügen Sie das Zertifikate-Snap-In hinzu. Wählen Sie bei Aufforderung das Computerkonto aus.
-
Erweitern Sie Persönlich > Zertifikate, und verwenden Sie dann den Kontextmenübefehl Alle Aufgaben > Importieren.
-
Suchen Sie nach der Zertifikatdatei.
Konfigurieren des SSL/TLS-Listener-Ports
Wenn die IIS-Windows-Komponente auf demselben Server installiert ist, die als Teil von Web Studio und Director installiert wird, können Sie TLS mit IIS konfigurieren. Weitere Informationen finden Sie unter TLS für Web Studio und Director aktivieren. Andernfalls konfigurieren Sie das Zertifikat mit PowerShell:
-
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 besteht, löschen Sie diese.
netsh http delete sslcert ipport=0.0.0.0:443 <!--NeedCopy-->Ersetzen Sie
0.0.0.0:443durch eine bestimmte IP-Adresse und einen Port, falls in der vorhandenen Bindung eine angegeben war. -
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 zusammenhängend 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 zusammenhängend 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 oder erneuten Binden eines Zertifikats verwenden Sie die spezifische
appid, die dem Broker Service zugeordnet ist, anstatt einer beliebigen GUID.So finden Sie die korrekte
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 (zum Beispiel
{D333C884-187F-447C-8C67-463F33989C8F}). Verwenden Sie diese GUID für den Parameterappid.
-
-
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.
Cipher Suites konfigurieren
Die Reihenfolgeliste der Cipher Suites muss die Cipher Suites TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 oder TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (oder beide) enthalten; und diese Cipher Suites müssen allen Cipher Suites TLS_DHE_ vorangehen.
- Navigieren Sie mit dem Microsoft Gruppenrichtlinien-Editor zu Computerkonfiguration > Administrative Vorlagen > Netzwerk > SSL-Konfigurationseinstellungen.
- Bearbeiten Sie die Richtlinie „SSL Cipher Suite Order“. 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 allen Cipher Suites TLS_DHE_ vorangeht.
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 entstehen, wenn Sie einen Controller nicht vertrauenswürdigen Netzwerken aussetzen. 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>
wobei <http-port> die Portnummer für HTTP-Datenverkehr ist 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 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-->