다음을 통해 공유


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

저장소 핸들입니다. 를 사용하는 경우 검색된 저장소를 제한하여 CTL을 찾습니다.

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

체인에 인증서 주기가 있는지 여부를 확인하기 위해 검사 전에 체인에 추가된 인증서 수입니다. 주기는 체인의 서로 다른 두 위치에 동일한 인증서를 갖는 것으로 정의될 수 있습니다.

숫자가 낮을수록 검사가 더 자주 수행됩니다. 인증서 주기를 추가로 확인하면 프로세스가 상당히 느려집니다. 이 매개 변수는 기본 제한을 사용하려면 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 plus hRoot이거나, hRestrictedTrustNULL이 아닌 경우 hWorld 컬렉션 저장소와 hRestrictedTrust의 저장소 핸들입니다.

단독 신뢰 모드를 사용하면 애플리케이션에서 인증서 체인 유효성 검사를 위해 트러스트 앵커 및 피어 신뢰할 수 있는 인증서를 지정할 수 있습니다. 배타적 신뢰 모드에서는 루트 저장소와 시스템의 신뢰할 수 있는 사용자 저장소가 무시되고 hExclusiveRoothExclusiveTrustedPeople 멤버가 가리키는 앵커 및 인증서가 대신 사용됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 wincrypt.h

추가 정보

CERT_TRUST_STATUS

CertCreateCertificateChainEngine