Share via


ICertServerExit::GetCertificateProperty 메서드(certif.h)

GetCertificateProperty 메서드는 인증서에서 명명된 속성을 반환합니다.

구문

HRESULT GetCertificateProperty(
  [in]  const BSTR strPropertyName,
  [in]  LONG       PropertyType,
  [out] VARIANT    *pvarPropertyValue
);

매개 변수

[in] strPropertyName

검색할 명명된 속성을 지정합니다. 항상 유효하고 이 메서드를 호출하여 검색할 수 있는 인증서 속성의 주식 집합( 이름 속성이라고 함)이 있습니다. 이러한 속성에 대한 자세한 내용은 이름 속성을 참조하세요. 검색할 수 있는 다른 속성에는 인증서 속성이 포함됩니다.

다음 속성은 인증서에 고유하며 GetCertificateProperty에서 읽을 수 있습니다.

의미
NotBefore
날짜/시간
인증서 시작 유효 날짜
NotAfter
날짜/시간
인증서 만료 날짜
PublicKeyAlgorithm
String
주체 키 알고리즘 개체 식별자 (OID)
RawCertificate
이진
원시 인증서 바이트
RawPublicKey
이진
제목 키
RawPublicKeyAlgorithmParameters
이진
주체 키 알고리즘 매개 변수
RequestID
Signed Long
내부 요청 ID
SerialNumber
String
인증서 일련 번호
 

인증서의 DistinguishedName, RawName 및 SerialNumber 속성은 정책 모듈이 요청 처리를 완료하고 인증서를 발급한 후에만 GetCertificateProperty 에서 액세스할 수 있습니다.

다음 속성은 인증 기관에 적용됩니다. 이러한 속성을 읽으려면 컨텍스트가 0이어야 합니다. 컨텍스트는 ICertServerExit 개체를 처음 만들 때 0으로 설정됩니다. SetContext 메서드를 호출하여 0으로 설정할 수도 있습니다.

의미
CAType
long
인증 기관의 유형입니다. 다음 값 중 하나일 수 있습니다(Certsrv.h에 정의됨).

ENUM_ENTERPRISE_ROOTCA

ENUM_ENTERPRISE_SUBCA

ENUM_STANDALONE_ROOTCA

ENUM_STANDALONE_SUBCA

CertCount
long
CA 인증서 수입니다. 이 값은 CA가 갱신된 횟수를 더한 값입니다. 갱신에 대한 자세한 내용은 인증 기관 갱신을 참조하세요.
CertState
long
CA 인증서 상태입니다. 다음 값 중 하나일 수 있습니다.
CA_DISP_ERROR: CA 인증서가 발급되지 않았습니다.
CA_DISP_REVOKED: CA 인증서가 해지되었습니다.
CA_DISP_VALID: CA 인증서는 여전히 유효합니다.
CA_DISP_INVALID: CA 인증서가 만료되었습니다.
이 속성 이름은 '.#'으로 추가될 수 있습니다. 여기서 #은 CA 인증서 인덱스를 나타냅니다(또는 CRLSuffix 속성의 경우 CRL 인덱스). 인증서 및 CRL 인덱스에 대한 자세한 내용은 인증 기관 갱신을 참조하세요.
CertSuffix
String
CA 인증서에 대한 접미사입니다. 접미사는 인덱스가 0인 CA 인증서의 빈 문자열입니다. 그렇지 않으면 접미사(nn이 인증서 인덱스인 "(nn)" 형식)가 파일 또는 디렉터리 서비스 개체에 저장된 CA 인증서를 가리키는 모든 URL에 적용됩니다. LDAP가 아닌 URL의 경우 접미사는 일반적으로 ".crt" 텍스트 앞에 표시됩니다. LDAP URL의 경우 접미사는 일반적으로 전체 고유 이름의 첫 번째 'CN='에 추가됩니다.

이 속성 이름은 '.#'으로 추가될 수 있습니다. 여기서 #은 CA 인증서 인덱스를 나타냅니다(또는 CRLSuffix 속성의 경우 CRL 인덱스). 인증서 및 CRL 인덱스에 대한 자세한 내용은 인증 기관 갱신을 참조하세요.

CRLIndex
long
CRL(인증서 해지 목록) 인덱스입니다. 인증서 인덱스를 이 속성 이름에 추가하면 CRL 인덱스를 검색할 수 있습니다. CRL 인덱스가 인증서 인덱스와 반드시 일치하지는 않습니다. 자세한 내용은 인증을 참조 하세요.

이 속성 이름은 '.#'으로 추가될 수 있습니다. 여기서 #은 CA 인증서 인덱스를 나타냅니다(또는 CRLSuffix 속성의 경우 CRL 인덱스). 인증서 및 CRL 인덱스에 대한 자세한 내용은 인증 기관 갱신을 참조하세요.

CRLState
long
CRL 상태입니다. 다음 값 중 하나일 수 있습니다.
CA_DISP_ERROR: CRL은 다른 CA 인증서에 의해 관리됩니다.
CA_DISP_REVOKED: 이 CA 인증서의 CRL을 사용하는 모든 노출되지 않은 CA 인증서가 해지되었습니다.
CA_DISP_VALID: CA 인증서는 필요에 따라 CRL을 게시하는 데 여전히 사용되고 있습니다.
CA_DISP_INVALID: 이 CA 인증서의 CRL을 사용하는 모든 CA 인증서가 만료됩니다.
이 속성 이름은 '.#'으로 추가될 수 있습니다. 여기서 #은 CA 인증서 인덱스를 나타냅니다(또는 CRLSuffix 속성의 경우 CRL 인덱스). 인증서 및 CRL 인덱스에 대한 자세한 내용은 인증 기관 갱신을 참조하세요.
CRLSuffix
String
CA CRL에 대한 접미사입니다. 접미사는 인덱스가 0인 CRL의 빈 문자열입니다. 그렇지 않으면 접미사(nn이 CRL 인덱스인 "(nn)" 형식)가 파일 또는 디렉터리 서비스 개체에 저장된 CRL을 가리키는 모든 URL에 적용됩니다. LDAP가 아닌 URL의 경우 접미사는 일반적으로 ".crl" 텍스트 앞에 표시됩니다. LDAP URL의 경우 접미사는 일반적으로 전체 고유 이름의 첫 번째 'CN='에 추가됩니다.

이 속성 이름은 '.#'으로 추가될 수 있습니다. 여기서 #은 CA 인증서 인덱스를 나타냅니다(또는 CRLSuffix 속성의 경우 CRL 인덱스). 인증서 및 CRL 인덱스에 대한 자세한 내용은 인증 기관 갱신을 참조하세요.

fUseDS
long
CA가 디렉터리 서비스를 사용하는지 여부를 나타냅니다. 다음 값 중 하나일 수 있습니다.
  • 0=아니요
  • 1=예
MachineDNSName
String
CA를 호스팅하는 서버의 DNS 이름입니다.
ModuleRegistryLocation
String
모듈에서 사용할 수 있는 레지스트리 위치입니다.
RawCACertificate
이진
CA 인증서.

이 속성 이름은 '.#'으로 추가될 수 있습니다. 여기서 #은 CA 인증서 인덱스를 나타냅니다(또는 CRLSuffix 속성의 경우 CRL 인덱스). 인증서 및 CRL 인덱스에 대한 자세한 내용은 인증 기관 갱신을 참조하세요.

RawCRL
이진
CA의 CRL( 인증서 해지 목록 ).

이 속성 이름은 '.#'으로 추가될 수 있습니다. 여기서 #은 CA 인증서 인덱스를 나타냅니다(또는 CRLSuffix 속성의 경우 CRL 인덱스). 인증서 및 CRL 인덱스에 대한 자세한 내용은 인증 기관 갱신을 참조하세요.

RequesterCAAccess
long
요청자에게 인증서를 요청할 권한이 있는지 여부를 나타냅니다. 다음 값 중 하나일 수 있습니다.
  • 0=아니요
  • 1=예
(인증 기관 MMC 스냅인을 사용하여 인증서 요청 권한을 제어할 수 있습니다.)
SanitizedCAName
String
CA의 삭제된 이름입니다. 삭제된 CA 이름에 대한 자세한 내용은 ICertConfig::GetConfig를 참조하세요.
SanitizedShortName
String
고유성을 보장하기 위해 단축되고 해시 값을 포함하는 CA의 삭제된 이름입니다.

[in] PropertyType

속성 형식을 지정합니다. 형식은 다음 중 하나일 수 있습니다.

의미
PROPTYPE_LONG
서명된 긴 데이터
PROPTYPE_DATE
날짜/시간
PROPTYPE_BINARY
이진 데이터
PROPTYPE_STRING
유니코드 문자열 데이터

[out] pvarPropertyValue

속성 값을 포함할 VARIANT 에 대한 포인터입니다. 반환된 값은 BSTR로 인코딩됩니다. SysStringByteLen 함수를 사용하여 BSTR의 길이를 검색합니다. 이진 BLOBDistinguished Encoding Rules 인코딩된 X.509 인증서로 저장됩니다.

반환 값

C++

메서드가 성공하면 메서드는 S_OK 반환합니다.

메서드가 실패하면 오류를 나타내는 HRESULT 값이 반환됩니다. 일반적인 오류 코드 목록은 일반적인 HRESULT 값을 참조하세요.

VB

반환 값은 요청된 속성 값입니다.

설명

이 메서드를 사용하기 전에 ICertServerExit::SetContext 를 호출해야 합니다.

예제

BSTR    bstrPropName = NULL;
VARIANT varProp;

VariantInit(&varProp);

// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");

// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
                                             PROPTYPE_LONG,
                                             &varProp );
if (FAILED(hr))
{
    printf("Failed GetCertificateProperty [%x]\n", hr);
    goto error;
}
else
{
    // Successfully retrieved property; use varProp as needed.
    // ...
}

// Done processing.
if (NULL != bstrPropName)
    SysFreeString(bstrPropName);
VariantClear(&varProp);

요구 사항

   
지원되는 최소 클라이언트 지원되는 버전 없음
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 certif.h(Certsrv.h 포함)
라이브러리 Certidl.lib
DLL Certcli.dll

추가 정보

ICertServerExit

ICertServerExit::SetContext

이름 속성