証明書失効リスト (CRL) の確認
はじめに
StoreFrontは、公開された証明書失効リスト (CRL) を使用して、CVADデリバリーコントローラーが使用するTLS証明書のステータスを確認するように構成できます。次の場合、証明書へのアクセスを取り消す必要がある場合があります。
- 秘密キーが侵害されたと思われる場合
- CAが侵害された場合
- 所属が変更された場合
- 証明書が置き換えられた場合
注:
このトピックは、StoreFrontとCitrix Virtual Apps and Desktopsデリバリーコントローラー間でHTTPS接続が使用されている場合にのみ関連します。デリバリーコントローラーへのHTTP接続は証明書を必要としないため、ここで説明するストアの-CertRevocationPolicy設定は効果がありません。
StoreFrontは、CRL配布ポイント (CDP) 証明書拡張機能とローカルにインストールされた証明書失効リスト (CRL) を使用した証明書失効確認をサポートしています。StoreFrontは完全なCRLのみをサポートしており、差分CRLはサポートしていません。
CRL配布ポイント (CDP) 拡張機能
StoreFrontは、公開されたCRLにシリアル番号がリストされている失効した証明書を使用しているCitrix Virtual Apps and Desktopsデリバリーコントローラーからのリソースを列挙しません。どの証明書が失効したかを検出するために、StoreFrontはCDP証明書拡張機能で定義されているURLのいずれかを使用して、公開されたCRLにアクセスできる必要があります。

CRL公開間隔
StoreFrontがデリバリーコントローラー上の失効した証明書をより迅速に検出できるようにするには、CA上のCRL公開間隔を短縮します。CLR配布ポイント拡張機能のプロパティを編集して、公開キーインフラストラクチャに適した低いCLR公開間隔値を設定します。

クライアントCRLキャッシュ
Windows公開キーインフラストラクチャクライアントは、CRLをローカルにキャッシュします。ローカルにキャッシュされたCRLの有効期限が切れるまで、より新しいCRLはダウンロードされません。
StoreFrontの証明書失効リスト (CRL) へのアクセス
証明書失効確認は、StoreFrontがCRLにアクセスできるかどうかに依存します。StoreFrontがCRLを公開するWebサーバーまたは証明機関 (CA) にどのように接続し、StoreFrontがCRLの更新をどのように受信するかを慎重に検討してください。
内部エンタープライズCAとデリバリーコントローラー上のプライベート証明書
プライベートCAと証明書を使用するには、StoreFrontは正しく構成されたエンタープライズCAと、組織および内部ネットワーク内でアクセスできる公開されたCRLを必要とします。CDP拡張機能を発行するようにエンタープライズCAを構成する方法については、Microsoftのドキュメントを参照してください。CAがCDP拡張機能を含むように構成される前に存在していたデリバリーコントローラー上の証明書は、再発行が必要になる場合があります。
StoreFrontサーバーとCitrix Virtual Apps and Desktopsサーバーは、インターネットにアクセスできない分離されたプライベートネットワークにあるのが一般的です。このシナリオでは、プライベートCAを使用する必要があります。
外部パブリックCAとデリバリーコントローラー上のパブリック証明書
StoreFrontサーバーとCitrix Virtual Apps and Desktopsデリバリーコントローラーは、パブリックCAによって発行された証明書を使用できます。StoreFrontは、CDP拡張機能で参照されているURLを使用して、インターネット経由でパブリックCAのWebサーバーに接続できる必要があります。パブリック証明書が失効した後、StoreFrontがCDP URLを使用してCRLのコピーをダウンロードできない場合、StoreFrontはCRL確認を実行できません。
証明書失効ポリシーの表示
PowerShell を使用してポリシー設定を表示するには、Get-STFStoreFarmConfiguration コマンドレットを実行し、結果のオブジェクトで CertRevocationPolicy プロパティを表示します。例:
$store=Get-STFStoreService -VirtualPath '/Citrix/Store'
(Get-STFStoreFarmConfiguration -StoreService $store).CertRevocationPolicy
<!--NeedCopy-->
証明書失効ポリシーの構成
PowerShell を使用してストアの証明書失効ポリシーを設定するには、Set-STFStoreFarmConfiguration コマンドレットをパラメーター -CertRevocationPolicy とともに実行します。
CertRevocationPolicy オプションは、次の値に設定できます。
| 設定 | 説明 |
|---|---|
| NoCheck | StoreFrontは、デリバリーコントローラー上の証明書の失効状態を確認しません。StoreFrontは、失効した証明書を使用するデリバリーコントローラーからのリソースを列挙します。これがデフォルト設定です。 |
| MustCheck | これは最も安全なオプションです。StoreFrontは、デリバリーコントローラー上の証明書のCDP拡張機能で参照されているURLに接続してCRLを取得しようとします。CRLが利用できない場合、またはデリバリーコントローラーで使用されている証明書が失効している場合、StoreFrontはデリバリーコントローラーからの列挙に失敗します。URLは、証明書がプライベートである場合は内部Webサーバーを指すことができ、証明書がパブリックCAによって発行された場合はパブリックインターネットWebサーバーを指すことができます。 |
| FullCheck | StoreFrontは、デリバリーコントローラー証明書のCDP拡張機能で公開されているURLに接続しようとします。StoreFrontがURLからCRLのコピーを取得できない場合でも、デリバリーコントローラーからのリソースの列挙を許可します。StoreFrontがCRLを正常に取得し、デリバリーコントローラーの証明書が失効している場合、StoreFrontはリソースを列挙しません。URLは、証明書がプライベートである場合は内部Webサーバーを指すことができ、証明書がパブリックCAによって発行された場合はパブリックインターネットWebサーバーを指すことができます。 |
| NoNetworkAccess | StoreFrontサーバー上のCitrix Delivery Servers証明書ストアにローカルにインポートされたCRLのみが確認されます。StoreFrontは、CDP拡張機能で指定されたURLに接続しようとしません。StoreFrontがCRLのローカルコピーを取得できない場合でも、デリバリーコントローラーからのリソースの列挙を許可します。StoreFrontがCitrix Delivery Servers証明書ストアからCRLのローカルコピーを正常に取得し、デリバリーコントローラーの証明書が失効している場合、StoreFrontはリソースを列挙しません。 |
例:
$StoreVirtualPath = "/Citrix/Store"
$StoreObject = Get-STFStoreService -VirtualPath $StoreVirtualPath
Set-STFStoreFarmConfiguration -StoreService $StoreObject -CertRevocationPolicy "MustCheck"
<!--NeedCopy-->
複数のストアがある場合は、すべてのストアでこの手順を繰り返します。-CertRevocationPolicyはストアレベルの設定であり、$StoreVirtualPathで指定されたストア用に構成されたすべてのデリバリーコントローラーに影響します。
StoreFrontサーバーでのローカルインポートCRLの使用
ローカルにインポートされたCRLの使用はサポートされていますが、Citrix®は次の理由から推奨していません。
- 複数のStoreFrontサーバーグループが関与する大規模なエンタープライズ展開では、管理と更新が困難です。
- 証明書が失効するたびに、すべてのStoreFrontサーバーでCRLを手動で更新することは、CDP拡張機能と公開されたCRLをActive Directoryドメイン全体で使用するよりもはるかに非効率的です。
ローカルにインストールまたは更新されたCRLは、-CertRevocationPolicyが「NoNetworkAccess」に設定されており、すべてのStoreFrontサーバーにCRLを効率的に配布する手段がある場合に使用できます。
ローカルインポートCRLの使用
-
CRLをStoreFrontサーバーのデスクトップにコピーします。StoreFrontサーバーがサーバーグループの一部である場合は、グループ内のすべてのStoreFrontサーバーにコピーします。
-
MMCスナップインを開き、ファイル > スナップインの追加と削除 > 証明書 > コンピューターアカウント > Citrix Delivery Services証明書ストア を選択します。
-
右クリックして すべてのタスク > インポート を選択し、.CRLファイルを参照して すべてのファイル > 開く > すべての証明書を次のストアに配置 > Citrix Delivery Services を選択します。

PowerShellまたはコマンドラインによるCitrix Delivery Services証明書ストアへのCRLの追加
-
StoreFrontにログオンし、.CRLファイルを現在のユーザーのデスクトップにコピーします。
-
PowerShell ISEを開き、管理者として実行 を選択します。
-
以下を実行します。
certutil -addstore "Citrix Delivery Services" "$env:UserProfile\Desktop\Example-DC01-CA.crl" <!--NeedCopy-->成功すると、次が返されます。
Citrix Delivery Services CRL "CN=Example-DC01-CA, DC=example, DC=com" added to store. CertUtil: -addstore command completed successfully. <!--NeedCopy-->
このコマンドは、スクリプトを介して展開内のすべてのStoreFrontサーバーにCRLを自動的に配布する例として使用できます。
デリバリーコントローラーを使用したXML認証
StoreFrontは、ユーザー認証をCitrix Virtual Apps and Desktopsデリバリーコントローラーに委任するように構成できます。デリバリーコントローラー上の証明書が失効している場合、ユーザーはStoreFrontにサインインできません。この動作は、認証を担当するCitrix Virtual Apps and Desktopsデリバリーコントローラー上の証明書が失効している場合、Active DirectoryユーザーがStoreFrontにサインインできないようにするため、望ましいものです。
デリバリーコントローラーへのユーザー認証の委任
-
前のセクション 証明書失効確認のためのストアの構成 で説明されているように、証明書失効のためにストアを構成します。
-
XMLサービスベース認証 で説明されている手順に従って、HTTPSを使用するようにデリバリーコントローラーを構成します。
証明書失効確認のためのXML認証サービスの構成
これらの手順は、展開でXML認証を使用している場合にのみ必要です。
注:
StoreFrontは、ストアを認証サービスにマッピングするための2つのモデルをサポートしています。推奨されるアプローチは、ストアと認証サービス間の1対1マッピングです。この場合、このセクションの手順をすべてのストアとそのそれぞれの認証サービスで実行する必要があります。
ストアと認証サービスの両方で、証明書失効モードが同じ値に設定されていることを確認してください。または、認証構成がすべてのストアで同じである場合、複数のストアを構成して単一の認証サービスを共有できます。
認証サービスPowerShellコマンドレットには Set-STFStoreFarmConfiguration に相当するものがありません。そのため、わずかに異なるPowerShellアプローチが必要です。前のセクションで説明されている 証明書失効ポリシー設定 と同じものを使用します。
-
PowerShell ISEを開き、管理者として実行 を選択します。
$SiteID = 1 $StoreVirtualPath = "/Citrix/Store" $AuthVirtualPath = "/Citrix/StoreAuth" <!--NeedCopy--> -
XML認証に使用するストアサービス、認証サービス、およびデリバリーコントローラーを選択します。デリバリーコントローラーがストア用にすでに構成されていることを確認してください。
$StoreObject = Get-STFStoreService -SiteId $SiteID -VirtualPath $StoreVirtualPath $FarmObject = Get-STFStoreFarm -StoreService $StoreObject -FarmName "CVAD" $AuthObject = Get-STFAuthenticationService -SiteID $SiteID -VirtualPath $AuthVirtualPath <!--NeedCopy--> -
認証サービスのCertRevocationPolicyプロパティを直接変更します。
$AuthObject.FarmsConfiguration.CertRevocationPolicy = "FullCheck" $AuthObject.Save() Enable-STFXmlServiceAuthentication -AuthenticationService $AuthObject -Farm $FarmObject <!--NeedCopy--> -
正しい証明書失効モードが設定されていることを確認します。
$AuthObject = Get-STFAuthenticationService -SiteID 1 -VirtualPath $AuthVirtualPath $AuthObject.FarmsConfiguration.CertRevocationPolicy <!--NeedCopy-->
Windowsイベントビューアーで予想されるエラー
CRL確認が有効になっている場合、StoreFrontサーバーのWindowsイベントビューアーにエラーが報告されます。
イベントビューアーを開くには:
- StoreFrontサーバーで 実行 と入力します。
- eventvwr と入力し、Enterキーを押します。
- アプリケーションとサービスでCitrix Delivery Servicesイベントを探します。
エラー例: 失効した証明書を持つデリバリーコントローラーにストアが接続できない場合
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-->
エラー例: XML認証の失敗によりユーザーがログオンできない場合のReceiver for Webからのエラー
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-->