Share via


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

市集控制碼。 如果使用,則會限制搜尋的存放區以尋找 CCL。

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
使用 LocalMachine 登錄位置而非 CurrentUser 位置來建置鏈結。
CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE
0x00000010
在建置鏈結時啟用快取的自動更新。
CERT_CHAIN_ENABLE_SHARE_STORE
0x00000020
允許用來建置要共用鏈結的憑證存放區。
CERT_CHAIN_DISABLE_AIA
0x00002000
(明確擷取 AIA) 關閉授權單位資訊存取。

dwUrlRetrievalTimeout

網路 URL 物件擷取逾時之前的毫秒數。 可以設定為零以使用預設限制。

MaximumCachedCertificates

建置可快取為鏈結的憑證數目限制。 可以設定為 0 以使用預設限制。

CycleDetectionModulus

在進行檢查之前,新增至鏈結的憑證數目,以判斷鏈結中是否有憑證迴圈。 迴圈可能會定義為在鏈結中兩個不同位置具有相同的憑證。

數位越低,就會進行更頻繁的檢查。 憑證週期的額外檢查會大幅降低程式的速度。 此參數可以設定為零,以使用預設限制。

hExclusiveRoot

包含獨佔信任錨點的憑證存放區控制碼。 如果 hExclusiveRoothExclusiveTrustedPeople 成員指向有效的存放區,則會使用獨佔信任模式來建置鏈結。

Windows 7 和 Windows Server 2008 R2: 開始支援這個成員。

hExclusiveTrustedPeople

處理包含應用程式特定對等信任憑證的憑證存放區。 如果 hExclusiveRoothExclusiveTrustedPeople 成員指向有效的存放區,則會使用獨佔信任模式來建置鏈結。

Windows 7 和 Windows Server 2008 R2: 開始支援這個成員。

dwExclusiveFlags

您可以設定下列旗標。 只有在 hExclusiveRoothExclusiveTrustedPeople 或兩者都不是 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值。

備註

鏈結建置引擎會在建置鏈結中使用四個憑證存放區。 這些是 hRoot、hWorld、hTrust 和 hOther。 建立鏈結引擎時,會使用此結構中的資訊來建立這些存放區的控制碼。

hRoot 是 來自 hRestrictedRoot 的存放區控制碼,如果 hRestrictedRootNull,則為系統存放區的控制碼「Root」。

hWorld 是集合憑證存放區,包括同層級存放區 hRoot、「CA」、「My」、「Trust」,以及其控制碼位於 rghAdditionalStore所指向的陣列中的任何其他存放區。

hTrust 是 來自 hRestrictedTrust 的存放區控制碼,如果 hRestrictedTrustNull,則 hWorld。

hOther 是 hRestrictedOther 加上 hRoot,或者,如果 hRestrictedTrust 不是Null,hWorld 集合存放區加上 來自 hRestrictedTrust的存放區控制碼。

獨佔信任模式可讓應用程式指定信任錨點和對等信任憑證,以進行憑證鏈結驗證。 在獨佔信任模式中,系統會忽略根存放區和系統上受信任的人員存放區,並改用 hExclusiveRoothExclusiveTrustedPeople 成員所指向的錨點和憑證。

規格需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 wincrypt.h

另請參閱

CERT_TRUST_STATUS

CertCreateCertificateChainEngine