Citrix Virtual Apps and Desktops

Activer TLS sur les Delivery Controller

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

Pour activer TLS sur un contrôleur de mise à disposition, vous devez :

Demande et installation d’un certificat

Pour utiliser TLS, vous devez installer un certificat dont le nom courant ou le nom alternatif de l’objet correspond au nom de domaine complet du serveur. Si vous utilisez un équilibrage de charge devant les contrôleurs de mise à disposition, incluez les noms de domaine complets du serveur et de l’équilibrage de charge comme noms alternatifs de l’objet. Pour plus d’informations, reportez-vous à la section Certificats. Pour que StoreFront se connecte au contrôleur de mise à disposition, 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 que celui installé dans le cadre de Web Studio et Director, vous pouvez configurer TLS à l’aide d’IIS. Pour plus d’informations, reportez-vous à la section Activer TLS sur Web Studio et Director. Sinon, pour configurer le certificat à l’aide de PowerShell :

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

      netsh http show sslcert
    <!--NeedCopy-->
    
  2. S’il existe une liaison existante, supprimez-la.

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

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

  3. Recherchez l’empreinte 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 courant 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 courant du certificat ne correspond pas aux noms d’hôtes, l’opération échouera. S’il existe plusieurs certificats pour le nom d’hôte, plusieurs empreintes numériques concaténées sont renvoyées et vous devez choisir celle qui convient.

    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 avec le nom convivial spécifié, plusieurs empreintes numériques concaténées sont renvoyées et vous devez choisir celle qui convient.

  4. Pour lier le certificat au port, utilisez 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 0.0.0.0:443 applique ce paramètre à toutes les adresses IP. Vous pouvez également spécifier une adresse IP spécifique.

    • appid - un 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 supérieur. 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 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 passerelles Netscaler pour utiliser HTTPS au lieu de HTTP de façon à se connecter au contrôleur de mise à disposition.

Configurer l’API OData du service Monitor pour HTTPS

Le service de surveillance fournit des 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 changez-le en &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_SHA384 ou 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. Dans 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 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ou TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 précèdent les suites de chiffrement TLS_DHE_.

Sur Microsoft Learn, consultez également Configuration de l’ordre de la suite de chiffrement TLS.

Appliquer le trafic HTTPS uniquement

Il est recommandé de configurer le service XML pour ignorer le trafic HTTP.

  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; est 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 Delivery Controller