Citrix Virtual Apps and Desktops

TLS auf Delivery Controllers aktivieren

Standardmäßig sind sowohl HTTP als auch HTTPS aktiviert. HTTPS verwendet ein selbstsigniertes Zertifikat mit dem FQDN des Servers als allgemeinem Namen, dem StoreFront oder Webbrowser nicht vertrauen.

Um TLS auf einem Delivery Controller zu aktivieren, müssen Sie:

Anfordern und Installieren eines Zertifikats

Um TLS zu verwenden, müssen Sie ein Zertifikat installieren, dessen allgemeiner Name oder alternativer Antragstellername mit dem FQDN des Servers übereinstimmt. Wenn Sie vor den Delivery Controllern einen Load Balancer verwenden, schließen Sie sowohl den Server als auch die FQDNs des Load Balancers als alternative Subjektnamen ein. Weitere Informationen finden Sie unter Zertifikate. Damit StoreFront eine Verbindung zum Delivery Controller herstellen kann, müssen Sie einen digitalen RSA-Signaturalgorithmus 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, der als Teil von Web Studio und Director installiert ist, können Sie TLS mit IIS konfigurieren. Weitere Informationen finden Sie unter TLS in Web Studio und Director aktivieren. Andernfalls können Sie das Zertifikat mit PowerShell wie folgt konfigurieren:

  1. Um zu überprüfen, ob ein vorhandenes Zertifikat gebunden ist, öffnen Sie eine Eingabeaufforderung und führen Sie netsh http show sslcert aus:

      netsh http show sslcert
    <!--NeedCopy-->
    
  2. Wenn eine Bindung vorhanden ist, löschen Sie sie.

      netsh http delete sslcert ipport=0.0.0.0:443
    <!--NeedCopy-->
    

    Ersetzen Sie 0.0.0.0:443 durch eine bestimmte IP-Adresse und einen bestimmten Port, falls in der vorhandenen Bindung einer angegeben wurde.

  3. Suchen Sie den Fingerabdruck des Zertifikats, das Sie zuvor installiert haben. Um den Fingerabdruck anzuzeigen, öffnen Sie Computerzertifikate verwalten, navigieren Sie zum Zertifikat, öffnen Sie es und wechseln Sie zur Registerkarte Details.

    Screenshot der Zertifikatseigenschaften mit Fingerabdruck

    Alternativ können Sie PowerShell verwenden. Beispielsweise sucht das folgende Skript nach einem Zertifikat, dessen allgemeiner Name mit dem Hostnamen des Servers übereinstimmt, und druckt die Miniaturansicht:

      $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 für den Hostnamen mehrere Zertifikate vorhanden sind, werden mehrere aneinandergereihten Fingerabdrücke 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 aneinandergereihte Fingerabdrücke zurückgegeben und Sie müssen den entsprechenden Fingerabdruck auswählen.

  4. 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 gibt die IP-Adresse und den Port an. Die Verwendung von 0.0.0.0:443 gilt für alle IP-Adressen. Sie können stattdessen eine bestimmte IP-Adresse angeben.

    • appid – eine beliebige GUID zur Identifizierung der Anwendung, die die Bindung hinzugefügt hat. Sie können jede gültige GUID verwenden, zum Beispiel {91fe7386-e0c2-471b-a252-1e0a805febac}.

    • disablelegacytls=enable – deaktiviert ältere Versionen von TLS. Dieser Parameter ist unter Windows 2022 und höher verfügbar. Windows 2022 deaktiviert TLS 1.0 und 1.1. Unter Windows 2025 ist dies nicht erforderlich, 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 bc96f958848639fd101a793b87915d5f2829b0b6 an Port 443 auf 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 für die Verbindung mit dem Delivery Controller HTTPS statt HTTP verwenden.

Monitor Service OData-API für HTTPS konfigurieren

Der Überwachungsdienst bietet OData v3- und v4-APIs, um Citrix- und Drittanbieteranwendungen das Abfragen von Daten zu ermöglichen. Director stellt über die OData API V3 eine Verbindung zum Überwachungsdienst her. Führen Sie die folgenden Schritte aus, um die Monitor-OData-APIs für HTTPS zu konfigurieren:

  1. Führen Sie die folgende PowerShell 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-->
    
  2. Öffnen Sie die Datei C:\Programme\Citrix\Monitor\Service\Citrix.Monitor.exe.Config mit einem Texteditor. Suchen Sie das Element &lt;add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" /&gt; und ändern Sie es in &lt;add key="owin:baseAddress" value="https://localhost/citrix/monitor/odata/v4" /&gt;.

Verschlüsselungssammlungen konfigurieren

Die Reihenfolgeliste der Verschlüsselungssammlungen muss die Verschlüsselungssammlungen TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 oder TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (oder beide) enthalten; und diese Verschlüsselungssammlungen müssen allen Verschlüsselungssammlungen TLS_DHE_ vorangehen.

  1. Navigieren Sie mit dem Microsoft Gruppenrichtlinien-Editor zu Computerkonfiguration > Administrative Vorlagen > Netzwerk > SSL-Konfigurationseinstellungen.
  2. 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.
  3. 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 auf Microsoft Learn auch TLS-Chiffre-Suite-Reihenfolge konfigurieren.

Erzwingen von HTTPS-Datenverkehr

Es wird empfohlen, den XML-Dienst so zu konfigurieren, dass HTTP-Verkehr ignoriert wird.

  1. Führen Sie regedit aus
  2. Öffnen Sie HKLM\Software\Citrix\DesktopServer\
  3. Erstellen Sie einen neuen DWORD-Wert mit dem Namen XmlServicesEnableNonSsl und setzen Sie ihn auf 0.
  4. Starten Sie den Broker-Dienst neu.

Es gibt einen entsprechenden DWORD-Registrierungswert XmlServicesEnableSsl, den Sie erstellen können, um HTTPS-Verkehr zu ignorieren. Stellen Sie sicher, dass er nicht auf 0 festgelegt ist.

Ä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 -StoreFrontPort <http-port> -StoreFrontTlsPort <https-port>
<!--NeedCopy-->

wobei &lt;http-port&gt; die Portnummer für HTTP-Verkehr und &lt;https-port&gt; die Portnummer für HTTPS-Verkehr ist.

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-->
TLS auf Delivery Controllers aktivieren