CERT_CHAIN_ENGINE_CONFIG構造体 (wincrypt.h)

CERT_CHAIN_ENGINE_CONFIG構造体は、既定以外の証明書チェーン エンジンを構築するためのパラメーターを設定します。 使用されるエンジンによって、証明書チェーンの構築方法が決まります。

構文

typedef struct _CERT_CHAIN_ENGINE_CONFIG {
  DWORD      cbSize;
  HCERTSTORE hRestrictedRoot;
  HCERTSTORE hRestrictedTrust;
  HCERTSTORE hRestrictedOther;
  DWORD      cAdditionalStore;
  HCERTSTORE *rghAdditionalStore;
  DWORD      dwFlags;
  DWORD      dwUrlRetrievalTimeout;
  DWORD      MaximumCachedCertificates;
  DWORD      CycleDetectionModulus;
  HCERTSTORE hExclusiveRoot;
  HCERTSTORE hExclusiveTrustedPeople;
  DWORD      dwExclusiveFlags;
} CERT_CHAIN_ENGINE_CONFIG, *PCERT_CHAIN_ENGINE_CONFIG;

メンバー

cbSize

この構造体のサイズ (バイト単位)。

hRestrictedRoot

この構成パラメーターを使用して、ルート ストアを制限できます。 使用する場合は、ルート ストア内の証明書の適切なサブセットのみを含む任意の HCERTSTORE のハンドルにすることができます。

hRestrictedTrust

ストア ハンドル。 を使用する場合は、CCTL を検索するように検索するストアを制限します。

hRestrictedOther

ストア ハンドル。 を使用する場合は、証明書と CRL を検索するストアを制限します

cAdditionalStore

チェーンを構築するために必要な証明書と CRL を検索する追加ストアの数。

rghAdditionalStore

ビルド チェーンで検索する追加のストアのストア ハンドルの配列へのポインター。

dwFlags

次のフラグが定義されています。

説明
CERT_CHAIN_CACHE_END_CERT
0x00000001
エンド証明書の情報がキャッシュされます。 既定では、チェーンが構築されると、終了証明書を除くすべての証明書の情報がキャッシュされます。 このフラグを設定すると、キャッシュが終了証明書まで拡張されます。
CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL
0x00000004
証明書チェーンの構築には、キャッシュされた URL のみを使用します。 インターネットとイントラネットでは、URL ベースのオブジェクトは検索されません。
CERT_CHAIN_USE_LOCAL_MACHINE_STORE
0x00000008
CurrentUser の場所ではなく、LocalMachine レジストリの場所を使用してチェーンを構築します。
CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE
0x00000010
チェーンの構築中にキャッシュの自動更新を有効にします。
CERT_CHAIN_ENABLE_SHARE_STORE
0x00000020
共有するチェーンの構築に使用される証明書ストアを許可します。
CERT_CHAIN_DISABLE_AIA
0x00002000
機関情報アクセス (AIA) の取得を明示的に無効にします。

dwUrlRetrievalTimeout

ネットワーク ベースの URL オブジェクト取得のタイムアウトまでの時間 (ミリ秒)。 既定の制限を使用するには、0 に設定できます。

MaximumCachedCertificates

チェーンの構築時にキャッシュできる証明書の数の制限。 既定の制限を使用するには、0 に設定できます。

CycleDetectionModulus

チェーン内に証明書のサイクルがあるかどうかを判断するために、チェックが作成される前にチェーンに追加された証明書の数。 サイクルは、チェーン内の 2 つの異なる場所に同じ証明書を持つものとして定義できます。

数値が小さいほど、チェックの頻度が高くなります。 証明書のサイクルを追加でチェックすると、プロセスが大幅に遅くなります。 このパラメーターは、既定の制限を使用するために 0 に設定できます。

hExclusiveRoot

排他的信頼アンカーを含む証明書ストアを処理します。 hExclusiveRoot メンバーまたは hExclusiveTrustedPeople メンバーが有効なストアを指している場合、排他的信頼モードがチェーン構築に使用されます。

Windows 7 と Windows Server 2008 R2: このメンバーのサポートが開始されます。

hExclusiveTrustedPeople

アプリケーション固有のピア信頼された証明書を含む証明書ストアに対して処理します。 hExclusiveRoot メンバーまたは hExclusiveTrustedPeople メンバーが有効なストアを指している場合、排他的信頼モードがチェーン構築に使用されます。

Windows 7 と Windows Server 2008 R2: このメンバーのサポートが開始されます。

dwExclusiveFlags

次のフラグを設定できます。 このフラグは、 hExclusiveRoot または hExclusiveTrustedPeople またはその両方が NULL でない場合にのみ適用されます。

Windows 8 と Windows Server 2012: このメンバーのサポートが開始されます。

説明
CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG
0x00000001
証明書の検証中に 、hExclusiveRoot ストア内の自己署名されていない中間 CA 証明書を信頼アンカーとして扱う必要があることを示します。 証明書がこの CA にチェーンされている場合、チェーン構築は終了され、証明書は信頼済みと見なされます。 CA 証明書に対して署名の検証または失効チェックは実行されません。

既定では、このフラグが設定されていない場合、 hExclusiveRoot ストア内の自己署名証明書のみが信頼アンカーとして扱われます。

CERT_TRUST_STATUS構造のCERT_TRUST_IS_CA_TRUSTED値も参照してください。

解説

チェーン構築エンジンは、チェーンの構築に 4 つの証明書ストアを使用します。 hRoot、hWorld、hTrust、hOther です。 これらのストアのハンドルは、チェーン エンジンの作成時にこの構造の情報を使用して確立されます。

hRoot は hRestrictedRoot からのストア ハンドルです。 hRestrictedRootNULL の場合は、システム ストアの "ルート" のハンドルです。

hWorld は、兄弟ストア hRoot、"CA"、"My"、"Trust"、および rghAdditionalStore が指す配列にハンドルがある追加ストアを含むコレクション証明書ストアです。

hTrust は hRestrictedTrust からのストア ハンドルです。 hRestrictedTrustNULL の場合は hWorld です。

hOther は hRestrictedOther に hRoot を加算するか、 hRestrictedTrustNULL 以外の場合は、hWorld コレクション ストアと hRestrictedTrust のストア ハンドルです。

排他的信頼モードを使用すると、アプリケーションは証明書チェーンの検証のために信頼アンカーとピア信頼証明書を指定できます。 排他的信頼モードでは、ルート ストアとシステム上の信頼されたユーザー ストアは無視され、 代わりに hExclusiveRoot メンバーと hExclusiveTrustedPeople メンバーが指すアンカーと証明書 使用されます。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header wincrypt.h

関連項目

CERT_TRUST_STATUS

CertCreateCertificateChainEngine