StoreFront™ 2507 LTSR

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

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 (LCR) 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’AC 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 point de distribution de LCR (PDLCR) et des listes de révocation de certificats (LCR) installées localement. StoreFront ne prend en charge que les LCR complètes : les LCR delta ne sont pas prises en charge.

Extensions de point de distribution de LCR (PDLCR)

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 LCR publiée. Pour détecter quels certificats ont été révoqués, StoreFront doit pouvoir accéder à la LCR publiée en utilisant l’une des URL définies dans les extensions de certificat PDLCR.

Capture d'écran du certificat avec les extensions de point de distribution de LCR

Intervalle de publication de la LCR

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 LCR sur l’AC. Modifiez les propriétés de l’extension de point de distribution de LCR pour définir une valeur d’intervalle de publication de LCR inférieure, adaptée à votre infrastructure à clé publique.

Propriétés du certificat révoqué

Mise en cache de la LCR côté client

Le client de l’infrastructure à clé publique Windows met en cache les LCR localement. Une LCR plus récente n’est téléchargée qu’une fois que la LCR mise en cache localement a expiré.

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

La vérification de la révocation de certificats repose sur la capacité de StoreFront à accéder aux LCR. Examinez attentivement la manière dont StoreFront contacte le serveur web ou l’autorité de certification (AC) qui publie la LCR, et la manière dont StoreFront reçoit les mises à jour de la LCR.

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

Pour utiliser des AC et des certificats privés, StoreFront nécessite une AC d’entreprise correctement configurée et une LCR 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’AC d’entreprise pour publier les extensions PDLCR. Tous les certificats sur vos contrôleurs de livraison, qui existaient avant que l’AC ne soit configurée pour inclure les extensions PDLCR, peuvent nécessiter une réémission.

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 AC privées doivent être utilisées.

AC 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 AC publiques. StoreFront doit pouvoir contacter le serveur web de l’AC publique via Internet, en utilisant l’URL référencée dans les extensions PDLCR. Si StoreFront ne peut pas télécharger une copie de la LCR à l’aide d’une URL PDLCR après la révocation d’un certificat public, StoreFront ne peut pas effectuer la vérification de la LCR.

Afficher la stratégie de révocation de certificats

Pour afficher le paramètre de stratégie à l’aide de PowerShell, exécutez la cmdlet 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 de PowerShell, exécutez la cmdlet 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 LCR en contactant les URL référencées dans les extensions PDLCR du certificat sur le contrôleur de livraison. StoreFront ne parvient pas à énumérer à partir du contrôleur de livraison si la LCR 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 public sur Internet si le certificat est émis par une AC publique.
FullCheck StoreFront tente de contacter les URL publiées dans les extensions PDLCR du certificat du contrôleur de livraison. Si StoreFront ne parvient pas à obtenir une copie de la LCR à partir des URL, il autorise néanmoins l’énumération des ressources à partir du contrôleur de livraison. Si StoreFront obtient avec succès la LCR 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 public sur Internet si le certificat est émis par une AC publique.
NoNetworkAccess Seules les LCR, qui ont été importées localement dans le magasin de certificats Citrix Delivery Services sur le serveur StoreFront, sont vérifiées. StoreFront ne tente pas de contacter les URL spécifiées dans les extensions PDLCR. Si StoreFront ne parvient pas à obtenir une copie locale de la LCR, il autorise néanmoins l’énumération des ressources à partir du contrôleur de livraison. Si StoreFront obtient avec succès une copie locale de la LCR à partir du magasin de certificats Citrix Delivery Services, et que le certificat du contrôleur de livraison a été révoqué, StoreFront n’énumère pas les ressources.

Par exemple :

$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 tous. -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 LCR importées localement sur le serveur StoreFront

L’utilisation des LCR 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 LCR sur chaque serveur StoreFront, chaque fois qu’un certificat est révoqué, est beaucoup moins efficace que l’utilisation des extensions PDLCR et des LCR publiées sur l’ensemble du domaine Active Directory.

L’utilisation de LCR 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 LCR à tous les serveurs StoreFront.

Pour utiliser les LCR importées localement

  1. Copiez la LCR 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 Citrix Delivery Services.

  3. Cliquez avec le bouton droit 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 > Citrix Delivery Services.

    Liste de révocation de certificats

Pour ajouter la LCR au magasin de certificats 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 ce qui suit :

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

    En cas de succès, le résultat 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 LCR à 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 certificats 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 cmdlets 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 certificats correct.

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

Erreurs de l’Observateur d’événements Windows à prévoir

Lorsque la vérification de la LCR 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 Citrix Delivery Services.

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 : À partir de 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-->