CERT_CHAIN_ENGINE_CONFIG-Struktur (wincrypt.h)

Die CERT_CHAIN_ENGINE_CONFIG-Struktur legt Parameter für die Erstellung einer nicht standardmäßigen Zertifikatketten-Engine fest. Die verwendete Engine bestimmt, wie Zertifikatketten erstellt werden.

Syntax

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;

Member

cbSize

Größe dieser Struktur in Bytes.

hRestrictedRoot

Dieser Konfigurationsparameter kann verwendet werden, um den Stammspeicher einzuschränken. Falls verwendet, kann es das Handle eines beliebigen HCERTSTORE sein, der nur eine ordnungsgemäße Teilmenge der Zertifikate im Stammspeicher enthält.

hRestrictedTrust

Speicherhandle. Falls verwendet, schränkt die durchsuchten Speicher auf die Suche nach CTLs ein.

hRestrictedOther

Speicherhandle. Falls verwendet, schränkt die nach Zertifikaten und Zertifikatsperrlisten durchsuchten Speicher ein.

cAdditionalStore

Anzahl zusätzlicher Speicher, die nach Zertifikaten und Zertifikatsperrlisten gesucht werden sollen, die zum Erstellen von Ketten benötigt werden.

rghAdditionalStore

Ein Zeiger auf ein Array von Speicherhandles für alle zusätzlichen Speicher, die im Erstellen von Ketten durchsucht werden sollen.

dwFlags

Die folgenden Flags sind definiert.

Wert Bedeutung
CERT_CHAIN_CACHE_END_CERT
0x00000001
Die Informationen im Endzertifikat werden zwischengespeichert. Standardmäßig werden Informationen in allen Zertifikaten mit Ausnahme des Endzertifikats zwischengespeichert, während eine Kette erstellt wird. Durch das Festlegen dieses Flags wird die Zwischenspeicherung auf das Endzertifikat erweitert.
CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL
0x00000004
Verwenden Sie beim Erstellen einer Zertifikatkette nur zwischengespeicherte URLs. Internet und Intranet werden nicht nach URL-basierten Objekten durchsucht.
CERT_CHAIN_USE_LOCAL_MACHINE_STORE
0x00000008
Erstellen Sie die Kette mithilfe des Registrierungsspeicherorts LocalMachine im Gegensatz zum CurrentUser-Speicherort.
CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE
0x00000010
Aktivieren Sie die automatische Aktualisierung des Caches, während eine Kette erstellt wird.
CERT_CHAIN_ENABLE_SHARE_STORE
0x00000020
Zulassen, dass Zertifikatspeicher, die zum Erstellen der Kette verwendet werden, freigegeben werden.
CERT_CHAIN_DISABLE_AIA
0x00002000
Deaktivieren Sie AIA-Abrufe (Authority Information Access) explizit.

dwUrlRetrievalTimeout

Anzahl der Millisekunden vor einem Timeout für netzwerkbasierte URL-Objektabrufe. Kann auf 0 festgelegt werden, um den Standardgrenzwert zu verwenden.

MaximumCachedCertificates

Grenzwert für die Anzahl von Zertifikaten, die zwischengespeichert werden können, während eine Kette erstellt wird. Kann auf 0 festgelegt werden, um den Standardgrenzwert zu verwenden.

CycleDetectionModulus

Anzahl der Zertifikate, die der Kette hinzugefügt werden, bevor eine Überprüfung durchgeführt wird, um festzustellen, ob ein Zyklus von Zertifikaten in der Kette vorhanden ist. Ein Zyklus kann so definiert werden, dass dasselbe Zertifikat an zwei verschiedenen Stellen in einer Kette vorhanden ist.

Je niedriger die Zahl, desto häufiger werden Überprüfungen durchgeführt. Die zusätzliche Überprüfung auf Zyklen von Zertifikaten wird den Prozess erheblich verlangsamen. Dieser Parameter kann auf null festgelegt werden, um den Standardgrenzwert zu verwenden.

hExclusiveRoot

Handle für einen Zertifikatspeicher, der exklusive Vertrauensanker enthält. Wenn entweder das hExclusiveRoot- oder hExclusiveTrustedPeople-Element auf einen gültigen Speicher verweist, wird der exklusive Vertrauensmodus für die Kettenerstellung verwendet.

Windows 7 und Windows Server 2008 R2: Die Unterstützung für dieses Mitglied beginnt.

hExclusiveTrustedPeople

Handle für einen Zertifikatspeicher, der anwendungsspezifische Peer-vertrauenswürdige Zertifikate enthält. Wenn entweder das hExclusiveRoot- oder hExclusiveTrustedPeople-Element auf einen gültigen Speicher verweist, wird der exklusive Vertrauensmodus für die Kettenerstellung verwendet.

Windows 7 und Windows Server 2008 R2: Die Unterstützung für dieses Mitglied beginnt.

dwExclusiveFlags

Das folgende Flag kann festgelegt werden. Das Flag gilt nur, wenn hExclusiveRoot oder hExclusiveTrustedPeople oder beide nicht NULL sind.

Windows 8 und Windows Server 2012: Die Unterstützung für dieses Mitglied beginnt.

Wert Bedeutung
CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG
0x00000001
Gibt an, dass ein nicht selbstsigniertes Zwischenzertifizierungsstellenzertifikat im hExclusiveRoot-Speicher während der Zertifikatüberprüfung als Vertrauensanker behandelt werden soll. Wenn ein Zertifikat bis zu dieser Zertifizierungsstelle verkettet ist, wird die Verkettung beendet, und das Zertifikat gilt als vertrauenswürdig. Für das Zertifizierungsstellenzertifikat wird keine Signaturüberprüfung oder Sperrüberprüfung durchgeführt.

Wenn dieses Flag nicht festgelegt ist, werden standardmäßig nur selbstsignierte Zertifikate im hExclusiveRoot-Speicher als Vertrauensanker behandelt.

Siehe auch den wert CERT_TRUST_IS_CA_TRUSTED in der CERT_TRUST_STATUS-Struktur .

Hinweise

Die Chain Building-Engine verwendet vier Zertifikatspeicher in Gebäudeketten. Dies sind hRoot, hWorld, hTrust und hOther. Die Handles dieser Speicher werden mithilfe von Informationen in dieser Struktur erstellt, wenn eine Ketten-Engine erstellt wird.

hRoot ist das Speicherhandle von hRestrictedRoot oder, wenn hRestrictedRootNULL ist, das Handle für den Systemspeicher "Root".

hWorld ist ein Sammlungszertifikatspeicher, einschließlich gleichgeordneter Speicher hRoot, "CA", "My", "Trust" und alle zusätzlichen Speicher, auf deren Handles im Array von rghAdditionalStore verwiesen wird.

hTrust ist das Speicherhandle von hRestrictedTrust oder, wenn hRestrictedTrustNULL ist, hWorld.

hOther ist hRestrictedOther plus hRoot oder, wenn hRestrictedTrust ungleich NULL ist, der hWorld-Sammlungsspeicher plus das Speicherhandle von hRestrictedTrust.

Im exklusiven Vertrauensmodus können Anwendungen Vertrauensanker und Peer-vertrauenswürdige Zertifikate für die Zertifikatkettenvalidierung angeben. Im exklusiven Vertrauensmodus werden der Stammspeicher und der Speicher für vertrauenswürdige Personen auf dem System ignoriert, und stattdessen werden die Anker und Zertifikate verwendet, auf die die Mitglieder hExclusiveRoot und hExclusiveTrustedPeople verweisen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile wincrypt.h

Weitere Informationen

CERT_TRUST_STATUS

CertCreateCertificateChainEngine