Vérification des listes de révocation de certificats (CRL)

Introduction

Vous pouvez configurer StoreFront pour vérifier l’état des certificats TLS utilisés par les Delivery Controller CVAD à l’aide d’une liste de révocation de certificats (CRL) publiée. Il peut être nécessaire de révoquer l’accès à un certificat si :

  • vous pensez que la clé privée a été compromise
  • l’autorité de certification est compromise
  • l’affiliation a été modifiée
  • le certificat a été remplacé

Remarque :

Cette rubrique ne s’applique que lorsque des connexions HTTPS entre StoreFront et Citrix Virtual Apps and Desktops sont utilisées. Les connexions HTTP aux Delivery Controller ne nécessitant pas de certificat, le paramètre -CertRevocationPolicy pour le magasin, décrit ici, n’a aucun effet.

StoreFront prend en charge la vérification de la révocation de certificats à l’aide d’extensions de certificats de points de distribution de CRL (CDP) et de listes de révocation de certificats (CRL) installées localement. StoreFront prend uniquement en charge les listes de révocation de certificats complètes : les listes delta ne sont pas prises en charge.

Extensions de points de distribution de CRL (CDP)

StoreFront n’énumère pas les ressources des Delivery Controller Citrix Virtual Apps and Desktops qui utilisent des certificats révoqués dont les numéros de série sont répertoriés dans la liste de révocation de certificats publiée. Pour détecter les certificats révoqués, StoreFront doit pouvoir accéder à la liste de révocation de certificats publiée à l’aide de l’une des URL définies dans les extensions de certificats CDP.

Extensions de points d'extension de CRL

Intervalle de publication de CRL

Pour que StoreFront détecte plus rapidement les certificats révoqués sur le Delivery Controller, réduisez l’intervalle de publication de la liste de révocation de certificats sur l’autorité de certification. Modifiez les propriétés de l’extension de points de distribution CLR pour définir une valeur d’intervalle de publication CLR inférieure appropriée à votre infrastructure de clé publique.

Propriétés de certificat révoqué

Mise en cache de la liste de révocation de certificats client

Le client d’infrastructure de clé publique Windows met en cache les listes de révocation de certificats localement. Une nouvelle liste de révocation de certificats n’est pas téléchargée tant que la liste de révocation de certificats mise en cache localement n’a pas expiré.

Accès de StoreFront aux listes de révocation de certificats (CRL)

La vérification de la révocation de certificats repose sur la capacité de StoreFront à accéder aux listes de révocation de certificats. Veillez à prendre en compte la façon dont StoreFront contacte le serveur Web ou l’autorité de certification qui publie la liste de révocation de certificats et la façon dont StoreFront reçoit les mises à jour des listes de révocation de certificats.

Autorités de certification internes d’entreprise et certificats privés sur les Delivery Controller

Pour utiliser des autorités de certification et des certificats privés, StoreFront nécessite une autorité de certification d’entreprise correctement configurée et une liste de révocation de certificats publiée à laquelle il peut accéder au sein de votre organisation et du réseau interne. Reportez-vous à la documentation Microsoft pour plus d’informations sur la configuration de l’autorité de certification d’entreprise pour publier des extensions CDP. Il peut être nécessaire d’émettre de nouveau tous les certificats de vos Delivery Controller, qui existaient avant la configuration de l’autorité de certification pour inclure des extensions CDP.

Les serveurs StoreFront et Citrix Virtual Apps and Desktops se trouvent souvent dans des réseaux privés isolés sans accès à Internet. Dans ce scénario, des autorités de certification privées devraient être utilisées.

Autorités de certification publiques externes et certificats publics sur les Delivery Controller

Les serveurs StoreFront et les Delivery Controller Citrix Virtual Apps and Desktops peuvent utiliser des certificats émis par des autorités de certification publiques. StoreFront doit pouvoir contacter le serveur Web de l’autorité de certification publique via Internet, en utilisant l’URL référencée dans les extensions CDP. Si StoreFront ne peut pas télécharger une copie de la liste de révocation de certificats à l’aide d’une URL CDP après la révocation d’un certificat public, StoreFront ne peut pas effectuer la vérification de la liste de révocation de certificats.

Paramètres de stratégie de révocation de certificats

Utilisez les applets de commande PowerShell de Citrix StoreFront Get-STFStoreFarmConfiguration et Set-STFStoreFarmConfiguration pour définir la stratégie de révocation de certificats pour un magasin. L’exécution de Get-Help Set-STFStoreFarmConfiguration -detailed affiche l’aide de PowerShell et des exemples contenant l’option -CertRevocationPolicy. Pour plus d’informations sur ces applets de commande PowerShell de StoreFront, reportez-vous à la section Citrix StoreFront SDK PowerShell Modules.

L’option -CertRevocationPolicy peut être définie sur les valeurs suivantes :

Paramètre Description
NoCheck StoreFront ne vérifie pas l’état de révocation du certificat sur le Delivery Controller. StoreFront énumère les ressources des Delivery Controller qui utilisent des certificats révoqués. C’est le réglage par défaut.
MustCheck C’est l’option la plus sûre. StoreFront tente d’obtenir une liste de révocation de certificats en contactant les URL référencées dans les extensions CDP du certificat sur le Delivery Controller. StoreFront ne parvient pas à énumérer à partir du Delivery Controller si la liste de révocation de certificats n’est pas disponible ou si le certificat utilisé sur le Delivery Controller a été révoqué. L’URL peut pointer vers un serveur Web interne si le certificat est privé, ou vers un serveur Web Internet public si le certificat est émis par une autorité de certification publique.
FullCheck StoreFront tente de contacter les URL publiées dans les extensions CDP du certificat de Delivery Controller. Si StoreFront ne parvient pas à obtenir une copie de la liste de révocation de certificats à partir des URL, il permet toujours l’énumération des ressources à partir du Delivery Controller. Si StoreFront obtient avec succès la liste de révocation de certificats et que le certificat du Delivery Controller a été révoqué, StoreFront n’énumère pas les ressources. L’URL peut pointer vers un serveur Web interne si le certificat est privé, ou vers un serveur Web Internet public si le certificat est émis par une autorité de certification publique.
NoNetworkAccess Seules les listes de révocation de certificats importées localement dans le magasin de certificats de Citrix Delivery Services sur le serveur StoreFront sont vérifiées. StoreFront ne tente pas de contacter l’une des URL spécifiées dans les extensions CDP. Si StoreFront ne parvient pas à obtenir une copie locale de la liste de révocation de certificats, il permet quand même l’énumération des ressources à partir du Delivery Controller. Si StoreFront obtient avec succès une copie locale de la liste de révocation de certificats à partir du magasin de certificats de Citrix Delivery Services et que le certificat du Delivery Controller a été révoqué, StoreFront n’énumère pas les ressources.

Configurer un magasin pour la vérification de la révocation de certificats

Pour définir la stratégie de révocation de certificats pour un magasin, ouvrez PowerShell ISE avec Exécuter en tant qu’administrateur, puis exécutez les applets de commande PowerShell suivantes. Si vous avez plusieurs magasins, répétez cette procédure sur tous les magasins. -CertRevocationPolicy est un paramètre de niveau magasin qui affecte tous les Delivery Controller configurés pour le magasin spécifié dans $StoreVirtualPath.

$SiteID = 1
$StoreVirtualPath = "/Citrix/Store"
$StoreObject = Get-STFStoreService -SiteId $SiteID -VirtualPath
$StoreVirtualPath
Set-STFStoreFarmConfiguration -StoreService $StoreObject -CertRevocationPolicy
"MustCheck"

Pour vérifier que le paramètre a été correctement appliqué ou pour afficher la configuration -CertRevocationPolicy actuelle, exécutez la commande suivante :

(Get-STFStoreFarmConfiguration -StoreService $StoreObject).CertRevocationPolicy

Utilisation de listes de révocation de certificats importées localement sur le serveur StoreFront

L’utilisation de listes de révocation de certificats importées localement est prise en charge, mais Citrix ne le recommande pas car :

  • Elles sont difficiles à gérer et à mettre à jour dans les déploiements de grandes entreprises, où plusieurs groupes de serveurs StoreFront peuvent être impliqués.
  • La mise à jour manuelle de listes de révocation de certificats sur chaque serveur StoreFront, chaque fois qu’un certificat est révoqué, est beaucoup moins efficace que l’utilisation d’extensions CDP et de listes de révocation de certificats publiées sur l’ensemble du domaine Active Directory.

L’utilisation de listes de révocation de certificats mises à jour ou installées localement est possible si -CertRevocationPolicy est défini sur “NoNetworkAccess” et que vous avez les moyens de distribuer efficacement la liste de révocation de certificats à tous les serveurs StoreFront.

Pour utiliser des listes de révocation de certificats importées localement

  1. Copiez la liste de révocation de certificats sur le bureau du serveur StoreFront. Si le serveur StoreFront fait partie d’un groupe de serveurs, copiez-le sur tous les serveurs StoreFront du groupe.

  2. Ouvrez le composant logiciel enfichable MMC et sélectionnez File > Add/remove Snapins > Certificates > Computer Account > Citrix Delivery Services certificate store.

  3. Cliquez avec le bouton droit de la souris et sélectionnez All Tasks > Import, puis accédez au fichier .CRL et choisissez Select All Files > Open > Place all certificates in the following Store > Citrix Delivery Services.

    Liste de révocation de certificats

Pour ajouter la liste de révocation de certificats au magasin de certificats de Citrix Delivery Services via PowerShell ou la ligne de commande

  1. Connectez-vous à StoreFront et copiez le fichier .CRL sur le bureau de l’utilisateur actuel.

  2. Ouvrez PowerShell ISE et sélectionnez Exécuter en tant qu’administrateur.

  3. Exécutez la commande suivante :

    certutil -addstore "Citrix Delivery Services" "$env:UserProfile\Desktop\Example-DC01-CA.crl"
    

En cas de succès, les informations suivantes sont renvoyées :

Citrix Delivery Services
CRL "CN=Example-DC01-CA, DC=example, DC=com" added to store.
CertUtil: -addstore command completed successfully.

Vous pouvez utiliser cette commande comme exemple pour distribuer automatiquement la liste de révocation de certificats à tous les serveurs StoreFront de votre déploiement via des scripts.

Authentification XML à l’aide de Delivery Controller

Vous pouvez configurer StoreFront pour déléguer l’authentification utilisateur aux Delivery Controller Citrix Virtual Apps and Desktops. Les utilisateurs ne peuvent pas se connecter à StoreFront si le certificat du Delivery Controller a été révoqué. Ce comportement est souhaitable car les utilisateurs Active Directory ne devraient pas être en mesure de se connecter à StoreFront si le certificat sur le Delivery Controller Citrix Virtual Apps and Desktops, responsable de leur authentification, a été révoqué.

Pour déléguer l’authentification utilisateur aux Delivery Controller

  1. Configurez le magasin pour la révocation des certificats comme décrit dans la section précédenteConfigurer un magasin pour la vérification de la révocation de certificats.

  2. Configurez le Delivery Controller pour qu’il utilise HTTPS, en suivant la procédure décrite à la section Authentification basée sur le service XML.

Configurer un service d’authentification XML pour la vérification de la révocation de certificats

Ces étapes ne sont requises que si vous utilisez l’authentification XML dans votre déploiement.

Remarque :

StoreFront prend en charge deux modèles de mappage des magasins vers un service d’authentification. L’approche recommandée est un mappage un-à-un entre le magasin et le service d’authentification. Dans ce cas, vous devez effectuer les étapes de cette section sur tous les magasins et leurs services d’authentification respectifs.

Assurez-vous que le mode de révocation de certificat est défini sur la même valeur pour le magasin et le service d’authentification. Sinon, si la configuration d’authentification est identique pour tous les magasins, plusieurs magasins peuvent être configurés pour partager un service d’authentification unique.

Les applets de commande PowerShell du service d’authentification n’ont pas d’équivalent à Set-STFStoreFarmConfiguration, donc une approche PowerShell légèrement différente est requise. Utilisez les paramètres de stratégie de révocation de certificats décrits dans la section précédente.

  1. Ouvrez PowerShell ISE et sélectionnez Exécuter en tant qu’administrateur.

    $SiteID = 1
    $StoreVirtualPath = "/Citrix/Store"
    $AuthVirtualPath = "/Citrix/StoreAuth"
    
  2. Sélectionnez le service de magasin, le service d’authentification et le Delivery Controller à utiliser pour l’authentification XML. Assurez-vous que le Delivery Controller est déjà configuré pour le magasin.

    $StoreObject = Get-STFStoreService -SiteId $SiteID -VirtualPath $StoreVirtualPath
    $FarmObject = Get-STFStoreFarm -StoreService $StoreObject -FarmName "CVAD"
    $AuthObject = Get-STFAuthenticationService -SiteID $SiteID -VirtualPath $AuthVirtualPath
    
  3. Modifiez directement la propriété CertRevocationPolicy du service d’authentification.

    $AuthObject.FarmsConfiguration.CertRevocationPolicy = "FullCheck"
    $AuthObject.Save()
    Enable-STFXmlServiceAuthentication -AuthenticationService $AuthObject -Farm $FarmObject
    
  4. Vérifiez que vous avez défini le mode de révocation de certificat correct.

    $AuthObject = Get-STFAuthenticationService -SiteID 1 -VirtualPath $AuthVirtualPath
    $AuthObject.FarmsConfiguration.CertRevocationPolicy
    

Erreurs de l’Observateur d’événements Windows

Lorsque la vérification des listes de révocation de certificats est activée, des erreurs sont signalées dans l’Observateur d’événements Windows sur le serveur StoreFront.

Pour ouvrir l’Observateur d’événements :

  • Sur le serveur StoreFront, tapez Run.
  • Tapez eventvwr, puis appuyez sur Entrée.
  • Dans Applications et services, recherchez les événements Citrix Delivery Services.

Exemple d’erreur : le magasin ne peut pas contacter un Delivery Controller avec un certificat révoqué

Une connexion SSL n'a pas pu être établie : une erreur s'est produite lors de la cryptographie SSL :
l'accès est refusé.

Ce message a été signalé à partir du service XML Citrix à l'adresse
https://deliverycontrollerTLS.domain.com/scripts/wpnbr.dll.

Le service XML Citrix spécifié n'a pas pu être contacté et a été temporairement
supprimé de la liste des services actifs.

Exemple d’erreur : depuis Receiver pour Web, si l’utilisateur ne peut pas se connecter en raison de l’échec de l’authentification XML

Une réponse inattendue a été reçue durant le processus d'authentification.

Citrix.DeliveryServicesClients.Authentication.Exceptions.ExplicitAuthenticationFailure,
Citrix.DeliveryServicesClients.Authentication, Version=3.20.0.0,
Culture=neutral, PublicKeyToken=null

Échec général de l'authentification

ExplicitResult.State: 5

AuthenticationControllerRequestUrl:
https://storefront.example.com/Citrix/StoreWeb/ExplicitAuth/LoginAttempt

ActionType: LoginAttempt

at
Citrix.Web.AuthControllers.Controllers.ExplicitAuthController.GetExplicitAuthResult(ActionType
type, Dictionary`2 postParams)