Citrix Virtual Apps and Desktops

Activer TLS sur les serveurs Delivery Controller

Par défaut, HTTP et HTTPS sont activés. HTTPS utilise un certificat autosigné utilisant le nom de domaine complet du serveur comme nom commun, qui n’est pas approuvé par StoreFront ni par les navigateurs Web.

Pour activer TLS sur un serveur Delivery Controller, vous devez :

Demande et installation d’un certificat

Pour utiliser TLS, vous devez installer un certificat dont le nom commun ou le nom alternatif du sujet correspond au nom de domaine complet du serveur. Si vous utilisez un équilibreur de charge en amont des serveurs Delivery Controller, incluez les noms de domaine complets du serveur et de l’équilibreur de charge comme noms alternatifs de sujet. Pour plus d’informations, consultez la section Certificats. Pour que StoreFront se connecte au Delivery Controller, vous devez utiliser un algorithme de signature numérique RSA. StoreFront ne prend pas en charge les certificats utilisant l’algorithme ECDSA.

Configuration du port de l’écouteur SSL/TLS

Si le composant Windows IIS est installé sur le même serveur lors de l’installation de Web Studio et Director, vous pouvez configurer TLS à l’aide d’IIS. Pour plus d’informations, consultez la section Activer TLS sur Web Studio et Director. Sinon, pour configurer le certificat à l’aide de PowerShell, procédez comme suit :

  1. Pour vérifier s’il existe un certificat lié, ouvrez une invite de commandes et exécutez netsh http show sslcert :

      netsh http show sslcert
    <!--NeedCopy-->
    
  2. Si une liaison existe, supprimez-la.

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

    Remplacez 0.0.0.0:443 par une adresse IP et un port spécifique s’il y en avait un spécifié dans la liaison existante.

  3. Recherchez l’empreinte numérique du certificat que vous avez installé précédemment. Pour afficher l’empreinte numérique, ouvrez Gérer les certificats d’ordinateur, accédez au certificat, ouvrez-le et accédez à l’onglet Détails.

    Capture d'écran des propriétés du certificat montrant l'empreinte numérique

    Vous pouvez également utiliser PowerShell. Par exemple, le script suivant recherche un certificat dont le nom commun correspond au nom d’hôte du serveur et imprime la miniature :

      $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-->
    

    Si le nom commun du certificat ne correspond pas aux noms d’hôtes, cela échouera. S’il existe plusieurs certificats pour le nom d’hôte, plusieurs empreintes numériques concaténées seront renvoyées et vous devrez choisir l’empreinte numérique appropriée.

    L’exemple suivant recherche un certificat par nom convivial :

      $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-->
    

    S’il existe plusieurs certificats portant le nom convivial spécifié, plusieurs empreintes numériques concaténées seront renvoyées et vous devrez choisir l’empreinte numérique appropriée.

  4. Pour lier le certificat au port, exécutez la commande netsh http add sslcert :

      netsh http add sslcert ipport=[IP address]:443 certhash=[certificate hash] appid=[application GUID] disablelegacytls=enable
    <!--NeedCopy-->
    
    • ipport spécifie l’adresse IP et le port. L’utilisation de la valeur 0.0.0.0:443 s’applique à toutes les adresses IP. Vous pouvez également spécifier une adresse IP spécifique.

    • appid : GUID arbitraire utilisé pour identifier l’application qui a ajouté la liaison. Vous pouvez utiliser n’importe quel GUID valide, par exemple {91fe7386-e0c2-471b-a252-1e0a805febac}.

    • disablelegacytls=enable : désactive les versions d’ancienne génération de TLS. Ce paramètre est disponible sur Windows 2022 et les versions ultérieures. Windows 2022 désactive TLS 1.0 et 1.1. Sous Windows 2025, cela n’est pas nécessaire car TLS 1.0 et 1.1 sont désactivés par défaut.

    Par exemple, exécutez la commande suivante pour lier le certificat avec l’empreinte numérique bc96f958848639fd101a793b87915d5f2829b0b6 au port 443 sur toutes les adresses IP :

      netsh http add sslcert ipport=0.0.0.0:443 certhash=bc96f958848639fd101a793b87915d5f2829b0b6 appid={91fe7386-e0c2-471b-a252-1e0a805febac} disablelegacytls=enable
    <!--NeedCopy-->
    

Une fois HTTPS activé, vous devez configurer tous les déploiements StoreFront et les passerelles Netscaler Gateway pour les connexions au serveur Delivery Controller via HTTPS au lieu de HTTP.

Configurer l’API OData du service Monitor pour HTTPS

Le service de surveillance fournit les API OData v3 et v4 pour permettre aux applications Citrix et tierces d’interroger des données. Director se connecte au service de surveillance à l’aide de l’API OData V3. Pour configurer les API OData du moniteur pour HTTPS, procédez comme suit :

  1. Exécutez le PowerShell suivant :

      $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. Ouvrez le fichier C:\Program Files\Citrix\Monitor\Service\Citrix.Monitor.exe.Config avec un éditeur de texte. Trouvez l’élément &lt;add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" /&gt; et remplacez-le par &lt;add key="owin:baseAddress" value="https://localhost/citrix/monitor/odata/v4" /&gt;.

Configurer les suites de chiffrement

La liste d’ordre des suites de chiffrement doit inclure les suites de chiffrement TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384et TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (ou les deux) ; et ces suites de chiffrement doivent précéder toutes les suites de chiffrement TLS_DHE_.

  1. À l’aide de l’éditeur de stratégie de groupe Microsoft, accédez à Configuration ordinateur > Modèles d’administration > Réseau > Paramètres de configuration SSL.
  2. Modifiez la stratégie « Ordre des suites de chiffrement SSL ». Par défaut, cette stratégie est définie sur Non configuré. Définissez cette stratégie sur Activé.
  3. Organisez les suites dans l’ordre approprié ; supprimez les suites de chiffrement que vous ne souhaitez pas utiliser.

Assurez-vous que la suite TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384ou TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 précède toute suite de chiffrement TLS_DHE_.

Sur Microsoft Learn, consultez également la sectionConfiguring TLS Cipher Suite Order.

Appliquer le trafic HTTPS uniquement

Il est recommandé de configurer le service XML de sorte que le trafic HTTP soit ignoré.

  1. Exécutez regedit
  2. Ouvrez « HKLM\Software\Citrix\DesktopServer\ »
  3. Créez une nouvelle valeur DWORD avec le nom XmlServicesEnableNonSsl et définissez-la sur 0.
  4. Redémarrez le service Broker.

Il existe une valeur DWORD de registre correspondante XmlServicesEnableSsl que vous pouvez créer pour ignorer le trafic HTTPS. Assurez-vous qu’elle n’est pas définie sur 0.

Modifier les ports HTTP ou HTTPS

Par défaut, le service XML du Controller écoute le trafic HTTP sur le port 80 et le trafic HTTPS sur le port 443. Bien que vous puissiez utiliser des ports différents de ceux par défaut, n’oubliez pas les risques de sécurité relatifs à l’exposition d’un Controller à des réseaux non approuvés. Le déploiement d’un serveur StoreFront autonome est préférable à la modification des valeurs par défaut.

Pour modifier la valeur par défaut des ports HTTP ou HTTPS utilisés par le Controller, exécutez la commande suivante à partir de Studio :

  BrokerService.exe -StoreFrontPort <http-port> -StoreFrontTlsPort <https-port>
<!--NeedCopy-->

&lt;http-port&gt; est le numéro de port pour le trafic HTTP et &lt;https-port&gt; le numéro de port pour le trafic HTTPS.

Remarque:

Après avoir modifié un port, il se peut que Studio affiche un message sur la compatibilité et la mise à niveau des licences. Pour résoudre le problème, ré-enregistrez les instances de service à l’aide de la séquence de l’applet de commande PowerShell suivante :

  Get-ConfigRegisteredServiceInstance -ServiceType Broker -Binding XML_HTTPS |
  Unregister-ConfigRegisteredServiceInstance
  Get-BrokerServiceInstance | where Binding -eq "XML_HTTPS" |
  Register-ConfigServiceInstance
<!--NeedCopy-->
Activer TLS sur les serveurs Delivery Controller