StoreFront

Vérification de la liste de révocation de certificats (CRL)

Introduction

Vous pouvez configurer StoreFront pour vérifier l’état des certificats TLS utilisés par les contrôleurs de livraison CVAD à l’aide d’une liste de révocation de certificats (CRL) publiée. Vous devrez peut-être révoquer l’accès à un certificat si :

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

Remarque :

Ce sujet n’est pertinent que lorsque des connexions HTTPS sont utilisées entre StoreFront et les contrôleurs de livraison Citrix Virtual Apps and Desktops. Les connexions HTTP aux contrôleurs de livraison ne nécessitent pas de certificat, de sorte que le paramètre -CertRevocationPolicy pour le Store, décrit ici, n’a aucun effet.

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

Extensions de points de distribution de CRL (CDP)

StoreFront n’énumère pas les ressources des contrôleurs de livraison Citrix Virtual Apps and Desktops qui utilisent des certificats révoqués dont les numéros de série sont listés dans la CRL publiée. Pour détecter quels certificats ont été révoqués, StoreFront doit pouvoir accéder à la CRL publiée en utilisant l’une des URL définies dans les extensions de certificat CDP.

Capture d'écran d'un certificat avec extensions de point de distribution CLR

Intervalle de publication de la CRL

Pour que StoreFront détecte plus rapidement les certificats révoqués sur le contrôleur de livraison, réduisez l’intervalle de publication de la CRL 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, adaptée à votre infrastructure à clé publique.

Propriétés du certificat révoqué

Mise en cache des CRL côté client

Le client de l’infrastructure à clé publique Windows met en cache les CRL localement. Une CRL plus récente n’est pas téléchargée tant que la CRL 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 CRL. Examinez attentivement la manière dont StoreFront contacte le serveur web ou l’autorité de certification (CA) qui publie la CRL, et comment StoreFront reçoit les mises à jour de CRL.

Autorités de certification d’entreprise internes et certificats privés sur les contrôleurs de livraison

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 CRL publiée à laquelle il peut accéder au sein de votre organisation et de votre réseau interne. Reportez-vous à la documentation Microsoft pour obtenir des informations sur la configuration de l’autorité de certification d’entreprise afin de publier des extensions CDP. Tout certificat sur vos contrôleurs de livraison, qui existait avant que l’autorité de certification ne soit configurée pour inclure des extensions CDP, pourrait devoir être réémis.

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

Autorités de certification publiques externes et certificats publics sur les contrôleurs de livraison

Les serveurs StoreFront et les contrôleurs de livraison 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 CRL à 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 CRL.

Afficher la stratégie de révocation de certificats

Pour afficher le paramètre de stratégie à l’aide du SDK PowerShell, exécutez l’applet de commande Get-STFStoreFarmConfiguration et, dans l’objet résultant, affichez la propriété CertRevocationPolicy. Par exemple :

$store=Get-STFStoreService -VirtualPath '/Citrix/Store'
(Get-STFStoreFarmConfiguration -StoreService $store).CertRevocationPolicy
<!--NeedCopy-->

Configurer la stratégie de révocation de certificats

Pour définir la stratégie de révocation de certificats pour un Store à l’aide du SDK PowerShell, exécutez l’applet de commande Set-STFStoreFarmConfiguration avec le paramètre -CertRevocationPolicy.

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 contrôleur de livraison. StoreFront énumère toujours les ressources des contrôleurs de livraison qui utilisent des certificats révoqués. Il s’agit du paramètre par défaut.
MustCheck C’est l’option la plus sécurisée. StoreFront tente d’obtenir une CRL en contactant les URL référencées dans les extensions CDP du certificat sur le contrôleur de livraison. StoreFront ne parvient pas à énumérer les ressources du contrôleur de livraison si la CRL n’est pas disponible ou si le certificat utilisé sur le contrôleur de livraison 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 du contrôleur de livraison. Si StoreFront ne parvient pas à obtenir une copie de la CRL à partir des URL, il autorise néanmoins l’énumération des ressources du contrôleur de livraison. Si StoreFront obtient la CRL avec succès et que le certificat du contrôleur de livraison 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 CRL qui ont été importées localement dans le magasin de certificats des serveurs de livraison Citrix sur le serveur StoreFront sont vérifiées. StoreFront ne tente pas de contacter les URL spécifiées dans les extensions CDP. Si StoreFront ne parvient pas à obtenir une copie locale de la CRL, il autorise néanmoins l’énumération des ressources du contrôleur de livraison. Si StoreFront obtient avec succès une copie locale de la CRL à partir du magasin de certificats des serveurs de livraison Citrix et que le certificat du contrôleur de livraison a été révoqué, StoreFront n’énumère pas les ressources.

Par exemple :

$SiteID = 1
$StoreVirtualPath = "/Citrix/Store"
$StoreObject = Get-STFStoreService -VirtualPath $StoreVirtualPath
Set-STFStoreFarmConfiguration -StoreService $StoreObject -CertRevocationPolicy "MustCheck"
<!--NeedCopy-->

Si vous avez plusieurs Stores, répétez cette procédure sur chacun d’eux. -CertRevocationPolicy est un paramètre au niveau du Store qui affecte tous les contrôleurs de livraison configurés pour le Store spécifié dans $StoreVirtualPath.

Utilisation des CRL importées localement sur le serveur StoreFront

L’utilisation de CRL importées localement est prise en charge, mais Citrix® ne la recommande pas car :

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

L’utilisation de CRL installées ou mises à jour localement peut être envisagée si -CertRevocationPolicy est défini sur “NoNetworkAccess” et si vous disposez des moyens de distribuer efficacement la CRL à tous les serveurs StoreFront.

Pour utiliser des CLR importées localement

  1. Copiez la CRL sur le bureau du serveur StoreFront. Si le serveur StoreFront fait partie d’un groupe de serveurs, copiez-la sur tous les serveurs StoreFront du groupe.
  2. Ouvrez le composant logiciel enfichable MMC et sélectionnez Fichier > Ajouter/Supprimer des composants logiciels enfichables > Certificats > Compte d’ordinateur > Magasin de certificats des services de livraison Citrix.
  3. Cliquez avec le bouton droit de la souris et sélectionnez Toutes les tâches > Importer, puis accédez au fichier .CRL et choisissez Sélectionner tous les fichiers > Ouvrir > Placer tous les certificats dans le magasin suivant > Services de livraison Citrix.

Liste de révocation de certificats

Pour ajouter la CRL au magasin de certificats des services de livraison Citrix 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"
    <!--NeedCopy-->
    

    Si l’opération réussit, le message suivant est renvoyé :

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

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

Authentification XML à l’aide des contrôleurs de livraison

Vous pouvez configurer StoreFront pour déléguer l’authentification des utilisateurs aux contrôleurs de livraison Citrix Virtual Apps and Desktops. Les utilisateurs ne peuvent pas se connecter à StoreFront si le certificat sur le contrôleur de livraison a été révoqué. Ce comportement est souhaitable car les utilisateurs Active Directory ne devraient pas pouvoir se connecter à StoreFront si le certificat sur le contrôleur de livraison Citrix Virtual Apps and Desktops, responsable de leur authentification, a été révoqué.

Pour déléguer l’authentification des utilisateurs aux contrôleurs de livraison

  1. Configurez le Store pour la révocation de certificats comme décrit dans la section précédente Configurer un Store pour la vérification de la révocation de certificats.
  2. Configurez le contrôleur de livraison pour utiliser HTTPS, en suivant la procédure décrite dans 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 pour mapper les Stores à un service d’authentification. L’approche recommandée est un mappage un-à-un entre le Store et le service d’authentification. Dans ce cas, vous devez effectuer les étapes de cette section sur tous les Stores 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 Store et le service d’authentification. Alternativement, si la configuration d’authentification est identique pour tous les Stores, plusieurs Stores peuvent être configurés pour partager un seul service d’authentification.

Les applets de commande PowerShell du service d’authentification n’ont pas d’équivalent à Set-STFStoreFarmConfiguration, une approche PowerShell légèrement différente est donc requise. Utilisez les mêmes 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"
    <!--NeedCopy-->
    
  2. Sélectionnez le service de Store, le service d’authentification et le contrôleur de livraison™ à utiliser pour l’authentification XML. Assurez-vous que le contrôleur de livraison est déjà configuré pour le Store.

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

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

    $AuthObject = Get-STFAuthenticationService -SiteID 1 -VirtualPath $AuthVirtualPath
    $AuthObject.FarmsConfiguration.CertRevocationPolicy
    <!--NeedCopy-->
    

Erreurs attendues dans l’Observateur d’événements Windows

Lorsque la vérification de la CRL 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 Exécuter.
  • Tapez eventvwr, puis appuyez sur Entrée.
  • Dans Applications et services, recherchez les événements des services de livraison Citrix.

Exemple d’erreur : Le Store ne peut pas contacter un contrôleur de livraison avec un certificat révoqué

An SSL connection could not be established: An error occurred during SSL crytography: Access is denied.

This message was reported from the Citrix XML Service at address https://deliverycontrollerTLS.domain.com/scripts/wpnbr.dll.

The specified Citrix XML Service could not be contacted and has been temporarily removed from the list of active services.
<!--NeedCopy-->

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

An unexpected response was received during the authentication process.

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

General Authentication Failure

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)
<!--NeedCopy-->