Überprüfung von Zertifikatsperrlisten

Einführung

Sie können StoreFront so konfigurieren, dass der Status der von Citrix Virtual Apps and Desktops-Delivery Controllern verwendeten TLS-Zertifikate anhand einer veröffentlichten Zertifikatssperrliste überprüft wird. Sie müssen ggf. den Zugriff auf ein Zertifikat aus folgenden Gründen widerrufen:

  • Sie vermuten, dass der private Schlüssel kompromittiert wurde.
  • Die Zertifizierungsstelle wurde kompromittiert.
  • Die Zugehörigkeit hat sich geändert.
  • Das Zertifikat wurde ersetzt.

Hinweis:

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

StoreFront unterstützt die Zertifikatsperrprüfung mithilfe von CDP- Erweiterungen und lokal installierten Zertifikatsperrlisten. StoreFront unterstützt keine Delta-Sperrlisten, sondern nur vollständige Zertifikatsperrlisten.

CDP-Erweiterungen

StoreFront listet keine Ressourcen von Citrix Virtual Apps and Desktops- Delivery Controllern auf, die gesperrte Zertifikate verwenden, deren Seriennummern in der veröffentlichten Zertifikatsperrliste aufgeführt sind. Um zu erkennen, welche Zertifikate gesperrt wurden, muss StoreFront über eine der in den CDP-Zertifikaterweiterungen definierten URLs auf die veröffentlichte Zertifikatsperrliste zugreifen können.

CDP-Erweiterungen

Zertifikatsperrlisten-Veröffentlichungsintervall

Damit StoreFront gesperrte Zertifikate auf Delivery Controllern schneller erkennt, verringern Sie das Intervall der Veröffentlichung der Zertifizierungsstelle. Legen Sie in den Eigenschaften der CDP-Erweiterung einen niedrigeren , für Ihre PKI geeigneten Wert für das Zertifikatsperrlisten-Veröffentlichungsintervall fest.

Eigenschaften gesperrter Zertifikate

Caching der Zertifikatsperrliste auf Clients

Der Windows-PKI-Client speichert Zertifikatsperrlisten lokal zwischen. Eine neue Zertifikatsperrliste wird erst heruntergeladen, wenn die lokal zwischengespeicherte abgelaufen ist.

StoreFront-Zugriff auf Zertifikatsperrlisten

Zur Überprüfung auf Zertifikatsperrungen muss StoreFront auf Zertifikatsperrlisten zugreifen können. Überlegen Sie, wie StoreFront den Webserver oder die Zertifizierungsstelle, die die Zertifikatsperrliste veröffentlicht, kontaktieren soll und wie StoreFront Zertifikatsperrlistenupdates erhalten soll.

Interne Unternehmenszertifizierungsstellen und private Zertifikate auf Delivery Controllern

Zur Verwendung privater Zertifizierungsstellen und Zertifikate benötigt StoreFront eine ordnungsgemäß konfigurierte Unternehmenszertifizierungsstelle und eine veröffentlichte Zertifikatsperrliste, auf die es innerhalb der Organisation im internen Netzwerk zugreifen kann. Informationen zum Konfigurieren einer Unternehmenszertifizierungsstelle zum Veröffentlichen von CDP-Erweiterungen finden Sie in der Microsoft-Dokumentation. Zertifikate auf Delivery Controllern, die vorhanden waren, bevor die Zertifizierungsstelle für CDP-Erweiterungen konfiguriert wurde, müssen möglicherweise neu ausgestellt werden.

StoreFront- und Citrix Virtual Apps and Desktops-Server sind normalerweise in isolierten privaten Netzwerken ohne Zugriff auf das Internet. In einem solchen Szenario sollten private Zertifizierungsstellen verwendet werden.

Externe öffentliche Zertifizierungsstellen und öffentliche Zertifikate auf Delivery Controllern

StoreFront-Server und Citrix Virtual Apps and Desktops-Delivery Controller können Zertifikate verwenden, die von öffentlichen Zertifizierungsstellen ausgestellt wurden. StoreFront muss Zugang zu dem Webserver der öffentlichen Zertifizierungsstelle über das Internet unter Verwendung der in den CDP-Erweiterungen referenzierten URLs haben. Wenn StoreFront keine Kopie der Zertifikatsperrliste anhand einer CDP-URL herunterladen kann, nachdem ein öffentliches Zertifikat gesperrt wurde, kann StoreFront die Zertifikatsperrprüfung nicht durchführen.

Einstellungen der Richtlinie “Zertifikatsperrüberprüfung”

Verwenden Sie die Citrix StoreFront-PowerShell-Cmdlets Get-STFStoreFarmConfiguration und Set-STFStoreFarmConfiguration zum Festlegen der Richtlinie “Zertifikatsperrüberprüfung” für einen Store. Mit Get-Help Set-STFStoreFarmConfiguration -detailed werden die PowerShell-Hilfe und Beispiele mit der Option -CertRevocationPolicy angezeigt. Weitere Informationen zu den StoreFront-PowerShell-Cmdlets finden Sie unter Citrix StoreFront SDK PowerShell Modules.

Die Option -CertRevocationPolicy kann auf die folgenden Werte eingestellt werden:

Einstellung Beschreibung
Keine Prüfung StoreFront überprüft das Zertifikat auf dem Delivery Controller nicht auf seinen Sperrstatus. StoreFront listet weiterhin Ressourcen von Delivery Controllern auf, die gesperrte Zertifikate verwenden. Dies ist die Standardeinstellung.
MustCheck Dies ist die sicherste Option. StoreFront versucht, eine Zertifikatsperrliste abzurufen, indem es die URLs aufruft, auf die in den CDP-Erweiterungen des Zertifikats auf dem Delivery Controller verwiesen wird. StoreFront kann nichts von dem Delivery Controller auflisten, wenn die Zertifikatsperrliste nicht verfügbar ist oder das auf dem Delivery Controller verwendete Zertifikat gesperrt ist. 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 Zertifizierungsstelle ausgestellt wurde.
FullCheck StoreFront versucht die URLs aufzurufen, die in den CDP-Erweiterungen des Zertifikats auf dem Delivery Controller veröffentlicht sind. Kann StoreFront keine Kopie der Zertifikatsperrliste von den URLs abrufen, gestattet es weiterhin die Auflistung der Ressourcen von dem Delivery Controller. Ruft StoreFront die Zertifikatsperrliste erfolgreich ab und wurde das Zertifikat des Delivery Controllers gesperrt, 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 Zertifizierungsstelle ausgestellt wurde.
NoNetworkAccess Es werden nur Zertifikatsperrlisten geprüft, die lokal in den Citrix Delivery Controller-Zertifikatspeicher auf dem StoreFront-Server importiert wurden. StoreFront versucht nicht, die in den CDP-Erweiterungen angegebenen URLs aufzurufen. Kann StoreFront keine lokale Kopie der Zertifikatsperrliste abrufen, gestattet es weiterhin die Auflistung der Ressourcen von dem Delivery Controller. Ruft StoreFront die lokale Zertifikatsperrliste erfolgreich aus dem Citrix Delivery Controller-Zertifikatspeicher ab und wurde das Zertifikat des Delivery Controllers gesperrt, listet StoreFront keine Ressourcen auf.

Konfigurieren eines Stores für die Überprüfung der Zertifikatsperrlisten

Um die Richtlinie “Zertifikatsperrüberprüfung” für einen Store festzulegen, öffnen Sie die PowerShell ISE mit dem Befehl Als Administrator ausführen und führen Sie dann die folgenden PowerShell-Cmdlets aus. Wenn Sie mehrere Stores haben, wiederholen Sie diesen Vorgang für alle. -CertRevocationPolicy ist eine Einstellung auf Storeebene, die sich auf alle Delivery Controller auswirkt, die für den in $StoreVirtualPath angegebenen Store konfiguriert wurden.

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

Führen Sie folgenden Befehl aus, um zu überprüfen, ob die Einstellung richtig angewendet wurde oder um die aktuelle -CertRevocationPolicy-Konfiguration anzuzeigen:

(Get-STFStoreFarmConfiguration -StoreService $StoreObject).CertRevocationPolicy

Verwenden lokal importierter Zertifikatsperrlisten auf dem StoreFront-Server

Die Verwendung lokal importierter Zertifikatsperrlisten wird unterstützt, von Citrix jedoch aus folgenden Gründen nicht empfohlen:

  • Die Verwaltung und Aktualisierung ist in großen Bereitstellungen schwierig, in denen möglicherweise mehrere StoreFront-Servergruppen vorliegen.
  • Das manuelle Aktualisieren von Zertifikatsperrlisten auf jedem StoreFront-Server bei jeder Sperrung eines Zertifikats ist viel weniger effizient als die Verwendung von CDP-Erweiterungen und veröffentlichten Zertifikatsperrlisten in der gesamten Active Directory-Domäne.

Lokal installierte oder aktualisierte Zertifikatsperrlisten können verwendet werden, wenn -CertRevocationPolicy auf “NoNetworkAccess” festgelegt ist und Sie die Zertifikatsperrliste effizient an alle StoreFront-Server verteilen können.

Verwenden lokal importierter Zertifikatsperrlisten

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

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

  3. Klicken Sie mit der rechten Maustaste und wählen Sie Alle Tasks > Importieren, navigieren Sie zur Zertifikatsperrlistendatei und wählen Sie Alle Dateien auswählen > Öffnen > Alle Zertifikate in folgendem Speicher speichern > Citrix Delivery Services.

    Zertifikatsperrliste

Hinzufügen der Zertifikatsperrliste zum Citrix Delivery Services-Zertifikatspeicher per PowerShell oder Befehlszeile

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

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

  3. Führen Sie folgenden Befehl aus:

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

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.

Sie können diesen Befehl als Grundlage verwenden, um die Zertifikatsperrliste automatisch per Skript 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. Die Benutzer werden daran gehindert, sich bei StoreFront anzumelden, wenn das Zertifikat auf dem Delivery Controller gesperrt 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, das für ihre Authentifizierung verantwortlich ist, gesperrt wurde.

Delegieren der Benutzerauthentifizierung an Delivery Controller

  1. Konfigurieren Sie den Store für die Zertifikatsperrung wie im vorherigen Abschnitt Konfigurieren eines Stores für die Überprüfung der Zertifikatsperrlisten beschrieben.

  2. Konfigurieren Sie den Delivery Controller für die Verwendung von HTTPS (Verfahren siehe Authentifizierung auf Basis des XML-Diensts).

Konfigurieren des XML-Authentifizierungsdiensts für die Überprüfung der Zertifikatsperrlisten

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

Hinweis:

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

Stellen Sie sicher, dass Sie den Zertifikatsperrmodus für Store und Authentifizierungsdienst auf denselben Wert festlegen. Ist die Authentifizierungskonfiguration für alle Stores identisch, können mehrere Stores zur gemeinsamen Verwendung eines einzelnen Authentifizierungsdiensts konfiguriert werden.

Die PowerShell-Cmdlets für Authentifizierungsdienste besitzen kein Äquivalent zu Set-STFStoreFarmConfiguration. Daher ist ein etwas anderer PowerShell-Ansatz erforderlich. Verwenden Sie die gleichen, im vorherigen Abschnitt beschriebenen Einstellungen der Richtlinie “Zertifikatsperrüberprüfung”.

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

    $SiteID = 1
    $StoreVirtualPath = "/Citrix/Store"
    $AuthVirtualPath = "/Citrix/StoreAuth"
    
  2. Wählen Sie den Storedienst, den Authentifizierungsdienst und den Delivery Controller für die XML-Authentifizierung aus. 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
    
  3. Ändern Sie direkt die CertRevocationPolicy-Eigenschaft des Authentifizierungsdiensts.

    $AuthObject.FarmsConfiguration.CertRevocationPolicy = "FullCheck"
    $AuthObject.Save()
    Enable-STFXmlServiceAuthentication -AuthenticationService $AuthObject -Farm $FarmObject
    
  4. Prüfen Sie, ob Sie den richtigen Zertifikatsperrmodus festgelegt haben.

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

Erwartungsgemäße Fehler in der Windows-Ereignisanzeige

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

Öffnen der Ereignisanzeige:

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

Beispiel: Store cannot contact a delivery controller with a revoked certificate

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.

Beispiel für einen Fehler von Receiver für Web, wenn sich ein 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

ActionType: LoginAttempt

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