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
다음 플래그가 정의됩니다.
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: 이 멤버에 대한 지원이 시작됩니다.
값 | 의미 |
---|---|
|
인증서 유효성 검사 중에 hExclusiveRoot 저장소의 자체 서명되지 않은 중간 CA 인증서를 트러스트 앵커로 처리해야 했음을 나타냅니다. 인증서가 이 CA에 연결되면 체인 빌드가 종료되고 인증서가 신뢰할 수 있는 것으로 간주됩니다. CA 인증서에서 서명 확인 또는 해지 검사가 수행되지 않습니다.
기본적으로 이 플래그가 설정되지 않은 경우 hExclusiveRoot 저장소의 자체 서명된 인증서만 신뢰 앵커로 처리됩니다. CERT_TRUST_STATUS 구조체의 CERT_TRUST_IS_CA_TRUSTED 값도 참조하세요. |
설명
체인 빌드 엔진은 빌드 체인에 4개의 인증서 저장소를 사용합니다. hRoot, hWorld, hTrust 및 hOther입니다. 이러한 저장소의 핸들은 체인 엔진을 만들 때 이 구조의 정보를 사용하여 설정됩니다.
hRoot는 hRestrictedRoot 의 저장소 핸들이거나 hRestrictedRoot 가 NULL인 경우 시스템 저장소 "루트"에 대한 핸들입니다.
hWorld는 hRoot, "CA", "My", "Trust" 및 rghAdditionalStore가 가리키는 배열에 핸들이 있는 모든 추가 저장소를 포함하는 컬렉션 인증서 저장소입니다.
hTrust는 hRestrictedTrust 의 저장소 핸들이거나 hRestrictedTrust 가 NULL인 경우 hWorld입니다.
hOther는 hRestrictedOther plus hRoot이거나, hRestrictedTrust 가 NULL이 아닌 경우 hWorld 컬렉션 저장소와 hRestrictedTrust의 저장소 핸들입니다.
단독 신뢰 모드를 사용하면 애플리케이션에서 인증서 체인 유효성 검사를 위해 트러스트 앵커 및 피어 신뢰할 수 있는 인증서를 지정할 수 있습니다. 배타적 신뢰 모드에서는 루트 저장소와 시스템의 신뢰할 수 있는 사용자 저장소가 무시되고 hExclusiveRoot 및 hExclusiveTrustedPeople 멤버가 가리키는 앵커 및 인증서가 대신 사용됩니다.
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
머리글 | wincrypt.h |