StoreFront

Überprüfung der Zertifikatsperrliste (CRL)

Einführung

Sie können StoreFront so konfigurieren, dass der Status von TLS-Zertifikaten, die von CVAD-Delivery Controllern verwendet werden, mithilfe einer veröffentlichten Zertifikatsperrliste (CRL) überprüft wird. Möglicherweise müssen Sie den Zugriff auf ein Zertifikat widerrufen, wenn:

  • Sie glauben, dass der private Schlüssel kompromittiert wurde
  • die CA kompromittiert ist
  • die Zugehörigkeit geändert wurde
  • das Zertifikat ersetzt wurde

Hinweis:

Dieses Thema ist nur relevant, wenn HTTPS-Verbindungen zwischen StoreFront und Citrix Virtual Apps and Desktops Delivery Controllern verwendet werden. HTTP-Verbindungen zu Delivery Controllern erfordern kein Zertifikat, daher hat die hier beschriebene Einstellung -CertRevocationPolicy für den Store keine Auswirkung.

StoreFront unterstützt die Überprüfung des Zertifikatswiderrufs mithilfe von CRL Distribution Point (CDP)-Zertifikatserweiterungen und lokal installierten Zertifikatsperrlisten (CRLs). StoreFront unterstützt nur vollständige CRLs: Delta-CRLs werden nicht unterstützt.

CRL Distribution Point (CDP)-Erweiterungen

StoreFront listet keine Ressourcen von Citrix Virtual Apps and Desktops Delivery Controllern auf, die widerrufene Zertifikate verwenden, deren Seriennummern in der veröffentlichten CRL aufgeführt sind. Um zu erkennen, welche Zertifikate widerrufen wurden, muss StoreFront in der Lage sein, auf die veröffentlichte CRL über eine der in den CDP-Zertifikatserweiterungen definierten URLs zuzugreifen.

Screenshot eines Zertifikats mit CLR-Erweiterungspunkten

CRL-Veröffentlichungsintervall

Um StoreFront zu ermöglichen, widerrufene Zertifikate auf dem Delivery Controller schneller zu erkennen, reduzieren Sie das CRL-Veröffentlichungsintervall auf der CA. Bearbeiten Sie die Eigenschaften der CLR Distribution Points-Erweiterung, um einen niedrigeren CLR-Veröffentlichungsintervallwert festzulegen, der für Ihre Public Key Infrastructure geeignet ist.

Eigenschaften des widerrufenen Zertifikats

Client-CRL-Caching

Der Windows Public Key Infrastructure Client speichert CRLs lokal zwischen. Eine neuere CRL wird erst heruntergeladen, wenn die lokal zwischengespeicherte CRL abgelaufen ist.

StoreFronts Zugriff auf Zertifikatsperrlisten (CRLs)

Die Überprüfung des Zertifikatswiderrufs hängt von der Fähigkeit von StoreFront ab, auf CRLs zuzugreifen. Überlegen Sie sorgfältig, wie StoreFront den Webserver oder die Zertifizierungsstelle (CA) kontaktiert, die die CRL veröffentlicht, und wie StoreFront CRL-Updates empfängt.

Interne Unternehmens-CAs und private Zertifikate auf Delivery Controllern

Um private CAs und Zertifikate zu verwenden, benötigt StoreFront eine korrekt konfigurierte Unternehmens-CA und eine veröffentlichte CRL, auf die es innerhalb Ihrer Organisation und Ihres internen Netzwerks zugreifen kann. Informationen zur Konfiguration der Unternehmens-CA zum Veröffentlichen von CDP-Erweiterungen finden Sie in der Microsoft-Dokumentation. Alle Zertifikate auf Ihren Delivery Controllern, die vor der Konfiguration der CA zur Aufnahme von CDP-Erweiterungen existierten, müssen möglicherweise neu ausgestellt werden.

Es ist typisch, dass StoreFront- und Citrix Virtual Apps and Desktops-Server in isolierten privaten Netzwerken ohne Internetzugang betrieben werden. In diesem Szenario sollten private CAs verwendet werden.

Externe öffentliche CAs und öffentliche Zertifikate auf Delivery Controllern

StoreFront-Server und Citrix Virtual Apps and Desktops Delivery Controller können Zertifikate verwenden, die von öffentlichen CAs ausgestellt wurden. StoreFront muss in der Lage sein, den Webserver der öffentlichen CA über das Internet zu kontaktieren, indem es die in den CDP-Erweiterungen referenzierte URL verwendet. Wenn StoreFront nach dem Widerruf eines öffentlichen Zertifikats keine Kopie der CRL über eine CDP-URL herunterladen kann, kann StoreFront die CRL-Überprüfung nicht durchführen.

Zertifikatswiderrufsrichtlinie anzeigen

Um die Richtlinieneinstellung mithilfe von PowerShell anzuzeigen, führen Sie das Cmdlet Get-STFStoreFarmConfiguration aus und zeigen Sie im resultierenden Objekt die Eigenschaft CertRevocationPolicy an. Zum Beispiel:

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

Zertifikatswiderrufsrichtlinie konfigurieren

Um die Zertifikatswiderrufsrichtlinie für einen Store mithilfe von PowerShell festzulegen, führen Sie das Cmdlet Set-STFStoreFarmConfiguration mit dem Parameter -CertRevocationPolicy aus.

Die Option CertRevocationPolicy kann auf die folgenden Werte gesetzt werden:

Einstellung Beschreibung
NoCheck StoreFront überprüft den Widerrufsstatus des Zertifikats auf dem Delivery Controller nicht. StoreFront listet weiterhin Ressourcen von Delivery Controllern auf, die widerrufene Zertifikate verwenden. Dies ist die Standardeinstellung.
MustCheck Dies ist die sicherste Option. StoreFront versucht, eine CRL zu erhalten, indem es die in den CDP-Erweiterungen des Zertifikats auf dem Delivery Controller referenzierten URLs kontaktiert. StoreFront kann keine Ressourcen vom Delivery Controller auflisten, wenn die CRL nicht verfügbar ist oder wenn das auf dem Delivery Controller verwendete Zertifikat widerrufen wurde. Die URL kann auf einen internen Webserver verweisen, wenn das Zertifikat privat ist, oder auf einen öffentlichen Internet-Webserver, wenn das Zertifikat von einer öffentlichen CA ausgestellt wurde.
FullCheck StoreFront versucht, die in den CDP-Erweiterungen des Delivery Controller-Zertifikats veröffentlichten URLs zu kontaktieren. Wenn StoreFront keine Kopie der CRL von den URLs abrufen kann, erlaubt es dennoch die Auflistung von Ressourcen vom Delivery Controller. Wenn StoreFront die CRL erfolgreich abruft und das Zertifikat des Delivery Controllers widerrufen wurde, listet StoreFront keine Ressourcen auf. Die URL kann auf einen internen Webserver verweisen, wenn das Zertifikat privat ist, oder auf einen öffentlichen Internet-Webserver, wenn das Zertifikat von einer öffentlichen CA ausgestellt wurde.
NoNetworkAccess Es werden nur CRLs überprüft, die lokal in den Zertifikatspeicher der Citrix Delivery Servers auf dem StoreFront-Server importiert wurden. StoreFront versucht nicht, die in den CDP-Erweiterungen angegebenen URLs zu kontaktieren. Wenn StoreFront keine lokale Kopie der CRL abrufen kann, erlaubt es dennoch die Auflistung von Ressourcen vom Delivery Controller. Wenn StoreFront erfolgreich eine lokale Kopie der CRL aus dem Zertifikatspeicher der Citrix Delivery Servers abruft und das Zertifikat des Delivery Controllers widerrufen wurde, listet StoreFront keine Ressourcen auf.

Zum Beispiel:

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

Wenn Sie mehrere Stores haben, wiederholen Sie dieses Verfahren für alle. -CertRevocationPolicy ist eine Store-Einstellung, die alle Delivery Controller betrifft, die für den in $StoreVirtualPath angegebenen Store konfiguriert sind.

Verwenden von lokal importierten CRLs auf dem StoreFront-Server

Die Verwendung von lokal importierten CRLs wird unterstützt, aber Citrix® empfiehlt dies nicht, weil:

  • Sie in großen Unternehmensbereitstellungen, in denen mehrere StoreFront-Servergruppen beteiligt sein können, schwer zu verwalten und zu aktualisieren sind.
  • Das manuelle Aktualisieren von CRLs auf jedem StoreFront-Server, jedes Mal, wenn ein Zertifikat widerrufen wird, ist viel weniger effizient als die Verwendung von CDP-Erweiterungen und veröffentlichten CRLs in der gesamten Active Directory-Domäne.

Lokal installierte oder aktualisierte CRLs können verwendet werden, wenn -CertRevocationPolicy auf “NoNetworkAccess” gesetzt ist und Sie über die Mittel verfügen, die CRL effizient an alle StoreFront-Server zu verteilen.

So verwenden Sie lokal importierte CRLs

  1. Kopieren Sie die CRL auf den Desktop des StoreFront-Servers. Wenn der StoreFront-Server Teil einer Servergruppe ist, kopieren Sie sie auf alle StoreFront-Server in der Gruppe.

  2. Öffnen Sie das MMC-Snap-In und wählen Sie Datei > Snap-Ins hinzufügen/entfernen > Zertifikate > Computerkonto > Citrix Delivery Services-Zertifikatspeicher.

  3. Klicken Sie mit der rechten Maustaste und wählen Sie Alle Aufgaben > Importieren, navigieren Sie dann zur .CRL-Datei und wählen Sie Alle Dateien auswählen > Öffnen > Alle Zertifikate im folgenden Speicher platzieren > Citrix Delivery Services.

    Zertifikatsperrliste

So fügen Sie die CRL über PowerShell oder die Befehlszeile zum Zertifikatspeicher der Citrix Delivery Services hinzu

  1. Melden Sie sich bei StoreFront an und kopieren Sie die .CRL-Datei auf den Desktop des aktuellen Benutzers.

  2. Öffnen Sie die PowerShell ISE und wählen Sie Als Administrator ausführen.

  3. Führen Sie Folgendes aus:

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

    Bei Erfolg wird Folgendes zurückgegeben:

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

Sie können diesen Befehl als Beispiel verwenden, um die CRL automatisch über Skripte an alle StoreFront-Server in Ihrer Bereitstellung zu verteilen.

XML-Authentifizierung mit Delivery Controllern

Sie können StoreFront so konfigurieren, dass die Benutzerauthentifizierung an Citrix Virtual Apps and Desktops Delivery Controller delegiert wird. Benutzern wird die Anmeldung bei StoreFront verweigert, wenn das Zertifikat auf dem Delivery Controller widerrufen wurde. Dieses Verhalten ist wünschenswert, da Active Directory-Benutzer sich nicht bei StoreFront anmelden können sollten, wenn das Zertifikat auf dem Citrix Virtual Apps and Desktops Delivery Controller, der für ihre Authentifizierung zuständig ist, widerrufen wurde.

So delegieren Sie die Benutzerauthentifizierung an Delivery Controller

  1. Konfigurieren Sie den Store für den Zertifikatswiderruf, wie im vorherigen Abschnitt Einen Store für die Überprüfung des Zertifikatswiderrufs konfigurieren beschrieben.

  2. Konfigurieren Sie den Delivery Controller für die Verwendung von HTTPS, indem Sie das Verfahren befolgen, das unter XML-dienstbasierte Authentifizierung beschrieben ist.

Konfigurieren eines XML-Authentifizierungsdienstes für die Überprüfung des Zertifikatswiderrufs

Diese Schritte sind nur erforderlich, wenn Sie die XML-Authentifizierung in Ihrer Bereitstellung verwenden.

Hinweis:

StoreFront unterstützt zwei Modelle für die Zuordnung von Stores zu einem Authentifizierungsdienst. Der empfohlene Ansatz ist eine Eins-zu-Eins-Zuordnung zwischen Store und Authentifizierungsdienst. In diesem Fall müssen Sie die Schritte in diesem Abschnitt für alle Stores und ihre jeweiligen Authentifizierungsdienste ausführen.

Stellen Sie sicher, dass der Zertifikatswiderrufsmodus für den Store und den Authentifizierungsdienst auf denselben Wert eingestellt ist. Alternativ können, wenn die Authentifizierungskonfiguration für alle Stores identisch ist, mehrere Stores so konfiguriert werden, dass sie einen einzigen Authentifizierungsdienst gemeinsam nutzen.

Die PowerShell-Cmdlets des Authentifizierungsdienstes haben kein Äquivalent zu Set-STFStoreFarmConfiguration, daher ist ein etwas anderer PowerShell-Ansatz erforderlich. Verwenden Sie die gleichen Einstellungen für die Zertifikatswiderrufsrichtlinie, die im vorherigen Abschnitt beschrieben wurden.

  1. Öffnen Sie die PowerShell ISE und wählen Sie Als Administrator ausführen.

    $SiteID = 1
    $StoreVirtualPath = "/Citrix/Store"
    $AuthVirtualPath = "/Citrix/StoreAuth"
    <!--NeedCopy-->
    
  2. Wählen Sie den Store-Dienst, den Authentifizierungsdienst und den Delivery Controller™ aus, die für die XML-Authentifizierung verwendet werden sollen. Stellen Sie sicher, dass der Delivery Controller bereits für den Store konfiguriert ist.

    $StoreObject = Get-STFStoreService -SiteId $SiteID -VirtualPath $StoreVirtualPath
    $FarmObject = Get-STFStoreFarm -StoreService $StoreObject -FarmName "CVAD"
    $AuthObject = Get-STFAuthenticationService -SiteID $SiteID -VirtualPath $AuthVirtualPath
    <!--NeedCopy-->
    
  3. Ändern Sie die Eigenschaft CertRevocationPolicy des Authentifizierungsdienstes direkt.

    $AuthObject.FarmsConfiguration.CertRevocationPolicy = "FullCheck"
    $AuthObject.Save()
    Enable-STFXmlServiceAuthentication -AuthenticationService $AuthObject -Farm $FarmObject
    <!--NeedCopy-->
    
  4. Bestätigen Sie, dass Sie den korrekten Zertifikatswiderrufsmodus eingestellt haben.

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

Zu erwartende Fehler in der Windows-Ereignisanzeige

Wenn die CRL-Überprüfung aktiviert ist, werden Fehler in der Windows-Ereignisanzeige auf dem StoreFront-Server gemeldet.

So öffnen Sie die Ereignisanzeige:

  • Geben Sie auf dem StoreFront-Server Ausführen ein.
  • Geben Sie eventvwr ein und drücken Sie die Eingabetaste.
  • Suchen Sie unter Anwendungen und Dienste nach Citrix Delivery Services-Ereignissen.

Beispiel-Fehler: Store kann keinen Delivery Controller mit einem widerrufenen Zertifikat kontaktieren

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-->

Beispiel-Fehler: Von Receiver for Web, wenn sich der Benutzer aufgrund fehlgeschlagener XML-Authentifizierung nicht anmelden kann

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

at
Citrix.Web.AuthControllers.Controllers.ExplicitAuthController.GetExplicitAuthResult(ActionType
type, Dictionary`2 postParams)
<!--NeedCopy-->