Citrix Virtual Apps and Desktops

Activer TLS sur les Delivery Controllers

Par défaut, HTTP et HTTPS sont tous deux activés. HTTPS utilise un certificat auto-signé avec le nom de domaine complet (FQDN) du serveur comme nom commun, qui n’est pas approuvé par StoreFront™ ou les navigateurs web.

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

Demande et installation d’un certificat

Pour utiliser TLS, vous devez installer un certificat dont le nom commun (Common Name) ou le nom alternatif du sujet (Subject Alternative Name) correspond au FQDN du serveur. Si vous utilisez un équilibreur de charge devant les Delivery Controllers, incluez les FQDN du serveur et de l’équilibreur de charge comme noms alternatifs du sujet. Pour plus d’informations, consultez 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 d’écoute SSL/TLS

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

  1. Pour vérifier s’il existe une liaison de certificat existante, ouvrez une invite de commandes 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-->
    

    Remplacez 0.0.0.0:443 par une adresse IP et un port spécifiques s’ils étaient spécifiés dans la liaison existante.

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

    Capture d'écran des propriétés du certificat affichant 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 affiche l’empreinte numérique :

    $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ôte, cela échouera. S’il existe plusieurs certificats pour le nom d’hôte, cela renvoie plusieurs empreintes numériques concaténées et vous devez 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 avec le nom convivial spécifié, cela renvoie plusieurs empreintes numériques concaténées et vous devez choisir l’empreinte numérique appropriée.

  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 : L’adresse IP et le port. L’utilisation de 0.0.0.0:443 applique cela à toutes les adresses IP. Vous pouvez à la place spécifier une adresse IP spécifique.
    • certhash : L’empreinte numérique du certificat que vous avez identifié à l’étape précédente.
    • appid : Le GUID du service Citrix Broker.

      Remarque :

      Lors du renouvellement ou de la nouvelle liaison d’un certificat, utilisez l’appid spécifique associé au service Broker plutôt qu’un GUID arbitraire. Pour trouver l’appid correct pour le service Citrix Broker :

      1. Ouvrez une fenêtre de commande PowerShell en tant qu’administrateur et exécutez la commande suivante :
       ```
       Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker"
       <!--NeedCopy--> ```
      
      1. Localisez l’IdentifyingNumber (GUID) pour le service Citrix Broker dans la sortie (par exemple, {D333C884-187F-447C-8C67-463F33989C8F}). Utilisez ce GUID pour le paramètre appid.
    • disablelegacytls=enable : Désactive les versions héritées de TLS. Ce paramètre est disponible sur Windows 2022 et versions ultérieures. Sur Windows 2022, il désactive TLS 1.0 et 1.1. Sur Windows 2025, cela est inutile 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é, configurez tous les déploiements StoreFront et NetScaler Gateways pour utiliser HTTPS au lieu de HTTP afin de se connecter au Delivery Controller.

Configurer l’API OData du service de surveillance 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, suivez les étapes suivantes :

  1. Exécutez le script 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. Recherchez l’élément <add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" /> et remplacez-le par <add key="owin:baseAddress" value="https://localhost/citrix/monitor/odata/v4" />.

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. À 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 le bon ordre. Supprimez toutes 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ède toutes les suites de chiffrement TLS_DHE_.

Sur Microsoft Learn, consultez également Configuration de l’ordre des suites 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 nommée 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 sur le Controller écoute sur le port 80 pour le trafic HTTP et sur le port 443 pour le trafic HTTPS. Bien que vous puissiez utiliser des ports non par défaut, soyez conscient des risques de sécurité liés à l’exposition d’un Controller à des réseaux non fiables. Le déploiement d’un serveur StoreFront autonome est préférable à la modification des valeurs par défaut.

Pour modifier les ports HTTP ou HTTPS par défaut utilisés par le Controller, exécutez la commande suivante depuis Studio :

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

Où :

  • <http-port> est le numéro de port pour le trafic HTTP
  • <https-port> est le numéro de port pour le trafic HTTPS.

Remarque :

Après avoir modifié un port, Studio peut afficher un message concernant la compatibilité des licences et la mise à niveau. Pour résoudre le problème, réenregistrez les instances de service à l’aide de la séquence de cmdlets 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 Controllers