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 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 :
-
Obtenir, installer et enregistrer un certificat de serveur sur tous les Delivery Controllers. Pour plus de détails, consultez Demande et installation d’un certificat.
-
Configurer un port avec le certificat TLS. Pour plus de détails, consultez Installation d’un certificat.
- Activer HTTPS pour le service de surveillance.
-
Appliquer le trafic HTTPS en désactivant HTTP. Pour plus de détails, consultez Appliquer uniquement le trafic HTTPSAppliquer uniquement le trafic HTTPS.
- Vous pouvez éventuellement modifier les ports que le Controller utilise pour écouter le trafic HTTP et HTTPS. Pour plus de détails, consultez Modifier les ports HTTP ou HTTPS.
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 dans le cadre 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 :
-
Pour vérifier si un certificat existant est lié, ouvrez une invite de commandes et exécutez
netsh http show sslcert:netsh http show sslcert <!--NeedCopy--> -
S’il existe une liaison, supprimez-la.
netsh http delete sslcert ipport=0.0.0.0:443 <!--NeedCopy-->Remplacez
0.0.0.0:443par une adresse IP et un port spécifiques s’ils étaient spécifiés dans la liaison existante. -
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.

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.
-
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 s’applique à 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 le
appidspécifique associé au service Broker plutôt qu’un GUID arbitraire.Pour trouver le
appidcorrect pour le service Citrix Broker :-
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--> -
Localisez le IdentifyingNumber (GUID) du service Citrix Broker dans la sortie (par exemple,
{D333C884-187F-447C-8C67-463F33989C8F}). Utilisez ce GUID pour le paramètreappid.
-
-
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
bc96f958848639fd101a793b87915d5f2829b0b6au port443sur 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 les NetScaler Gateways pour qu’ils utilisent HTTPS au lieu de HTTP pour 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 les 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 :
-
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--> -
Ouvrez le fichier
C:\Program Files\Citrix\Monitor\Service\Citrix.Monitor.exe.Configavec 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_.
- À 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.
- 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é.
- 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.
- Exécutez
regedit - Ouvrez
HKLM\Software\Citrix\DesktopServer\ - Créez une nouvelle valeur DWORD nommée
XmlServicesEnableNonSslet définissez-la sur 0. - 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 contrôleur é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 contrôleur à des réseaux non fiables. Le déploiement d’un serveur StoreFront autonome est préférable à la modification des paramètres par défaut.
Pour modifier les ports HTTP ou HTTPS par défaut utilisés par le contrôleur, 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-->