Поделиться через


структура 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

Дескриптор хранилища. При использовании ограничивает хранилища , в которые выполняется поиск сертификатов и списков отзыва сертификатов.

cAdditionalStore

Количество дополнительных хранилищ для поиска сертификатов и списков отзыва сертификатов, необходимых для создания цепочек.

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

Обработка в хранилище сертификатов, которое содержит монопольные привязки доверия. Если элемент 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 следует рассматривать как привязку доверия во время проверки сертификата. Если сертификат связан с этим ЦС, создание цепочки завершается и сертификат считается доверенным. Проверка подписи или проверка отзыва сертификата ЦС не выполняется.

По умолчанию, если этот флаг не установлен, только самозаверяющие сертификаты в хранилище hExclusiveRoot рассматриваются как привязки доверия.

См. также значение CERT_TRUST_IS_CA_TRUSTED в структуре CERT_TRUST_STATUS .

Комментарии

Подсистема создания цепочки использует четыре хранилища сертификатов в цепочках зданий. Это hRoot, hWorld, hTrust и hOther. Дескрипторы этих хранилищ устанавливаются с помощью сведений в этой структуре при создании цепной подсистемы.

hRoot — это дескриптор хранилища из hRestrictedRoot или, если hRestrictedRoot имеет значение NULL, дескриптор для системного хранилища "Root".

hWorld — это хранилище сертификатов коллекции, включая одноуровневые хранилища hRoot, "CA", "My", "Trust" и любые дополнительные хранилища, дескрипторы которых находятся в массиве, на который указывает rghAdditionalStore.

hTrust — это дескриптор хранилища из hRestrictedTrust или, если hRestrictedTrust имеет значение NULL, hWorld.

hOther имеет значение hRestrictedOt и hRoot или, если hRestrictedTrust не равно NULL, хранилище коллекции hWorld плюс дескриптор хранилища из hRestrictedTrust.

Режим монопольного доверия позволяет приложениям указывать привязки доверия и одноранговые доверенные сертификаты для проверки цепочки сертификатов. В режиме монопольного доверия корневое хранилище и хранилище доверенных пользователей в системе игнорируются, а вместо них используются привязки и сертификаты, на которые указывают члены hExclusiveRoot и hExclusiveTrustedPeople .

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть wincrypt.h

См. также раздел

CERT_TRUST_STATUS

CertCreateCertificateChainEngine