다음을 통해 공유


ICertAdmin2::GetCAProperty 메서드(certadm.h)

GetCAProperty 메서드는 CA(인증 기관)에 대한 속성 값을 검색합니다. 이 메서드는 ICertAdmin 인터페이스에서 처음 정의되었습니다.

구문

HRESULT GetCAProperty(
  [in]  const BSTR strConfig,
  [in]  LONG       PropId,
  [in]  LONG       PropIndex,
  [in]  LONG       PropType,
  [in]  LONG       Flags,
  [out] VARIANT    *pvarPropertyValue
);

매개 변수

[in] strConfig

COMPUTERNAME\CANAME 형식의 CA에 대한 유효한 구성 문자열을 나타냅니다. 여기서 COMPUTERNAME은 인증서 서비스 서버의 네트워크 이름이고 CANAME는 인증서 서비스 설정 중에 입력한 대로 CA의 일반 이름입니다. 구성 문자열 이름에 대한 자세한 내용은 ICertConfig를 참조하세요.

중요GetCAProperty 는 구성 문자열이 변경되면 내부 캐시를 지우지 않습니다. CA에 대한 구성 문자열을 변경하는 경우 새 ICertAdmin 개체를 인스턴스화하고 새 구성 문자열을 사용하여 이 메서드를 다시 호출해야 합니다.
 

[in] PropId

다음 속성 식별자 중 하나를 지정합니다.

의미
CR_PROP_ADVANCEDSERVER
속성의 데이터 형식: Long

CA가 고급 서버를 실행하고 있는지 여부를 지정합니다.

CR_PROP_BASECRL
속성의 데이터 형식: 이진, 인덱싱됨

CA의 전체 또는 기본 CRL(인증서 해지 목록 )입니다.

CR_PROP_BASECRLPUBLISHSTATUS
속성의 데이터 형식: Long, indexed

기본 CRL 게시 상태. 자세한 내용은 설명을 참조하세요.

CR_PROP_CABACKWARDCROSSCERT
속성의 데이터 형식: 이진, 인덱싱됨

역방향 교차 인증서입니다. 역방향 교차 인증서는 CA에서 CA의 새 키로 서명된 자체로 갱신할 때 발급된 인증서입니다. 역방향 교차 인증서에는 새 CA 인증서의 기관 키 식별자와 이전 CA 인증서의 주체 키 식별자가 있습니다.

루트 CA에만 적용됩니다.

CR_PROP_CABACKWARDCROSSCERTSTATE
속성의 데이터 형식: Long, indexed

이전 버전 간 인증서가 유효한지 여부입니다. 루트 CA에만 유효합니다.

CR_PROP_CACERTSTATE
속성의 데이터 형식: Long

CA 인증서의 상태입니다. 값은 다음이 될 수 있습니다.

  • CA_DISP_REVOKED
  • CA_DISP_VALID
  • CA_DISP_INVALID
CR_PROP_CACERTSTATUSCODE
속성의 데이터 형식: Long, indexed

CA 인증서의 상태( HRESULT)입니다.

CR_PROP_CACERTVERSION
속성의 데이터 형식: Long, indexed

CA 인증서의 버전(DWORD)입니다. 상위 단어는 키 인덱스이고, 하위 단어는 CA 인증서 인덱스입니다.

CR_PROP_CAFORWARDCROSSCERT
속성의 데이터 형식: 이진, 인덱싱됨

전달 교차 인증서입니다. 전달 교차 인증서는 CA에서 CA의 이전 키로 서명된 자체로 갱신할 때 발급된 인증서입니다. 전달 교차 인증서에는 이전 CA 인증서의 기관 키 식별자와 새 CA 인증서의 주체 키 식별자가 있습니다.

루트 CA에만 적용됩니다.

CR_PROP_CAFORWARDCROSSCERTSTATE
속성의 데이터 형식: Long, indexed

전달 교차 인증서가 유효한지 여부입니다. 루트 CA에만 유효합니다.

CR_PROP_CANAME
속성의 데이터 형식: 문자열

CA의 이름입니다.

CR_PROP_CASIGCERT
속성의 데이터 형식: 이진, 인덱싱됨

CA 서명 인증서.

CR_PROP_CASIGCERTCHAIN
속성의 데이터 형식: 이진, 인덱싱됨

CA 서명 인증서 체인.

CR_PROP_CASIGCERTCOUNT
속성의 데이터 형식: Long

CA에 대한 서명 인증서 수입니다.

CR_PROP_CASIGCERTCRLCHAIN
속성의 데이터 형식: 이진, 인덱싱됨

CA의 서명 인증서 CRL 체인입니다.

CR_PROP_CATYPE
속성의 데이터 형식: Long

CA 유형입니다. 다음 값 중 하나일 수 있습니다(Certsrv.h에 정의됨).

  • ENUM_ENTERPRISE_ROOTCA
  • ENUM_ENTERPRISE_SUBCA
  • ENUM_STANDALONE_ROOTCA
  • ENUM_STANDALONE_SUBCA
CR_PROP_CAXCHGCERT
속성의 데이터 형식: 이진, 인덱싱됨

CA 교환 인증서.

CR_PROP_CAXCHGCERTCHAIN
속성의 데이터 형식: 이진, 인덱싱됨

CA 교환 인증서 체인.

CR_PROP_CAXCHGCERTCOUNT
속성의 데이터 형식: Long

CA에 대한 교환 인증서 수입니다.

CR_PROP_CAXCHGCERTCRLCHAIN
속성의 데이터 형식: 이진, 인덱싱됨

CA의 교환 인증서 CRL 체인입니다.

CR_PROP_CERTAIAURLS
속성의 데이터 형식: 문자열, 인덱싱됨

기관 정보 액세스 URL을 클라이언트에서 요청한 URL 유형으로 지정합니다.

Windows Server 2003: 이 플래그는 지원되지 않습니다.

CR_PROP_CERTCDPURLS
속성의 데이터 형식: 문자열, 인덱싱됨

CRL 배포 지점 URL을 클라이언트에서 요청한 URL 유형으로 지정합니다.

Windows Server 2003: 이 플래그는 지원되지 않습니다.

CR_PROP_CRLSTATE
속성의 데이터 형식: Long

CA CRL의 상태입니다. 값은 다음이 될 수 있습니다.

  • CA_DISP_REVOKED
  • CA_DISP_VALID
  • CA_DISP_INVALID
  • CA_DISP_ERROR
CR_PROP_DELTACRL
속성의 데이터 형식: 이진, 인덱싱됨

CA의 델타 CRL입니다.

CR_PROP_DELTACRLPUBLISHSTATUS
속성의 데이터 형식: Long, indexed

델타 CRL 게시 상태. 자세한 내용은 설명을 참조하세요.

CR_PROP_DNSNAME
속성의 데이터 형식: 문자열

CA의 DNS 이름입니다.

CR_PROP_EXITCOUNT
속성의 데이터 형식: Long

CA에서 사용 중인 종료 모듈의 수입니다.

CR_PROP_EXITDESCRIPTION
속성의 데이터 형식: 문자열

종료 모듈에 대한 설명입니다.

CR_PROP_FILEVERSION
속성의 데이터 형식: 문자열

Certificate Services 파일 버전입니다.

CR_PROP_KRACERT
속성의 데이터 형식: 이진, 인덱싱됨

CA의 KRA(키 복구 에이전트) 인증서입니다.

CR_PROP_KRACERTCOUNT
속성의 데이터 형식: Long

CA에 대한 KRA 인증서 수입니다.

CR_PROP_KRACERTSTATE
속성의 데이터 형식: Long, indexed

KRA의 인증서 상태입니다. 반환 값은 다음 중 하나입니다.

  • KRA_DISP_EXPIRED
  • KRA_DISP_NOTFOUND
  • KRA_DISP_REVOKED
  • KRA_DISP_VALID
  • KRA_DISP_UNTRUSTED
  • KRA_DISP_NOTLOADED
  • KRA_DISP_INVALID
CR_PROP_KRACERTUSEDCOUNT
속성의 데이터 형식: Long

CA에서 사용하는 KRA 인증서 수입니다.

CR_PROP_PARENTCA
속성의 데이터 형식: 문자열

CA의 부모 CA 이름입니다.

CR_PROP_POLICYDESCRIPTION
속성의 데이터 형식: 문자열

정책 모듈에 대한 설명입니다.

CR_PROP_PRODUCTVERSION
속성의 데이터 형식: 문자열

파일이 배송된 제품 버전입니다.

CR_PROP_ROLESEPARATIONENABLED
속성의 데이터 형식: Long

역할 분리를 사용할지 여부를 지정하는 값입니다.

CR_PROP_SANITIZEDCANAME
속성의 데이터 형식: 문자열

CA의 삭제된 이름입니다. 삭제된 CA 이름의 정의는 ICertConfig2::GetConfig를 참조하세요.

CR_PROP_SANITIZEDCASHORTNAME
속성의 데이터 형식: 문자열

CA의 삭제된 짧은 이름입니다. 삭제된 CA 짧은 이름의 정의는 ICertConfig2::GetConfig를 참조하세요.

CR_PROP_SHAREDFOLDER
속성의 데이터 형식: 문자열

공유 폴더 디렉터리의 이름입니다.

CR_PROP_TEMPLATES
속성의 데이터 형식: 문자열

CA에서 지원하는 템플릿 목록입니다.

[in] PropIndex

PropId 매개 변수가 인덱싱되면 속성 값을 검색할 때 사용할 0부터 시작하는 인덱스입니다. PropId가 인덱싱되지 않으면 이 값은 무시됩니다.

[in] PropType

PropId 테이블의 의미 열에 표시된 속성의 형식을 지정합니다. 형식은 다음 형식 중 하나일 수 있습니다.

의미
PROPTYPE_LONG
서명된 긴 데이터
PROPTYPE_DATE
날짜/시간(향후 사용을 위해 예약됨)
PROPTYPE_BINARY
이진 데이터
PROPTYPE_STRING
유니코드 문자열 데이터

[in] Flags

다음 플래그를 사용하여 반환된 속성 값의 형식을 지정할 수 있습니다. 이러한 플래그는 이진 데이터(예: 인증서, 인증서 체인 또는 인증서 해지 목록)에 대해서만 의미가 있으며, 그렇지 않으면 무시됩니다.

의미
CV_OUT_BASE64
BEGIN/END가 없는 BASE64
CV_OUT_BASE64HEADER
BEGIN CERTIFICATE 및 END CERTIFICATE가 있는 BASE64
CV_OUT_BASE64REQUESTHEADER
새 인증서 요청 시작 및 새 인증서 요청 종료가 포함된 BASE64
CV_OUT_BASE64X509CRLHEADER
BEGIN X509 CRL 및 END X509 CRL을 사용한 BASE64
CV_OUT_BINARY
이진
CV_OUT_HEX
16진수 문자열
CV_OUT_HEXADDR
주소/오프셋이 있는 16진수 문자열
CV_OUT_HEXASCII
ASCII를 사용하여 16진수 문자열
CV_OUT_HEXASCIIADDR
ASCII 및 주소/오프셋이 있는 16진수 문자열

[out] pvarPropertyValue

요청된 속성 값을 수신하는 버퍼에 대한 포인터입니다. VariantClear를 호출하면 이 리소스를 해제하는 것은 호출자의 책임입니다.

반환 값

C++

반환 값은 HRESULT입니다. S_OK 값은 메서드가 성공했음을 나타냅니다.

VB

요청된 속성 값입니다.

설명

속성 식별자가 CR_PROP_BASECRLPUBLISHSTATUS 또는 CR_PROP_DELTACRLPUBLISHSTATUS 경우 다음 값이 반환됩니다. 이러한 값은 결합할 수 있습니다.

Description
CPF_BADURL_ERROR URL이 잘못되었습니다.
CPF_BASE 기본 CRL이 게시되었습니다.
CPF_CASTORE_ERROR CA 저장소 오류로 인해 게시가 차단되었습니다.
CPF_COMPLETE 전체 CRL이 게시되었습니다.
CPF_DELTA 델타 CRL이 게시되었습니다.
CPF_FILE_ERROR 파일 오류로 인해 게시가 차단되었습니다.
CPF_FTP_ERROR FTP 오류로 인해 게시가 차단되었습니다.
CPF_HTTP_ERROR HTTP 오류로 인해 게시가 차단되었습니다.
CPF_LDAP_ERROR LDAP 오류로 인해 게시가 차단되었습니다.
CPF_MANUAL CRL이 수동으로 게시되었습니다.
CPF_SHADOW 빈 델타 CRL이 새 BASE CRL과 함께 게시되었습니다.
CPF_SIGNATURE_ERROR 서명 오류로 인해 게시가 차단되었습니다.
 

CRL을 검색하는 예제는 인증서 해지 목록 검색을 참조하세요.

예제

다음 예제에서는 CA의 서명 인증서를 검색하는 방법을 보여줍니다. 이 예제에서는 ICertAdmin2 인터페이스 포인터가 유효하다고 가정합니다.

BSTR bstrCA = NULL;
VARIANT var1;
HRESULT hr;

bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
    printf("Failed to allocate memory for bstrCA\n");
    exit(1);
}

VariantInit(&var1);
// Retrieve the CA signature certificate at index 0.
hr = pAdmin2->GetCAProperty(bstrCA,
                                CR_PROP_CASIGCERT,
                                0,
                                PROPTYPE_BINARY,
                                CV_OUT_BASE64HEADER,
                                &var1);
if (FAILED(hr))
{
    printf("Failed GetCAProperty\n");
    SysFreeString(bstrCA);
    exit(1);  // Or other error action.
}

// Use the property as needed.
// ...

// Clear the variant when finished.
VariantClear(&var1);
SysFreeString(bstrCA);

요구 사항

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