CertOpenServerOcspResponse 함수(wincrypt.h)

CertOpenServerOcspResponse 함수는 서버 인증서 체인과 연결된 OCSP(온라인 인증서 상태 프로토콜) 응답에 대한 핸들을 엽니다.

구문

HCERT_SERVER_OCSP_RESPONSE CertOpenServerOcspResponse(
  [in] PCCERT_CHAIN_CONTEXT                 pChainContext,
  [in] DWORD                                dwFlags,
       PCERT_SERVER_OCSP_RESPONSE_OPEN_PARA pOpenPara
);

매개 변수

[in] pChainContext

인증서 체인을 포함하는 CERT_CHAIN_CONTEXT 구조체의 주소입니다.

[in] dwFlags

의미
0
0x00000000
이 API는 반환하기 전에 초기 OCSP 응답을 검색하려고 합니다. 즉, 검색 중에 차단됩니다.
CERT_SERVER_OCSP_RESPONSE_ASYNC_FLAG
0x00000001
초기 동기 검색을 수행하지 않고 즉시 반환되도록 이 플래그를 설정합니다.

pOpenPara

이 매개 변수는 사용되지 않으며 NULL이어야 합니다.

반환 값

성공하면 서버 인증서 체인과 연결된 OCSP 응답에 대한 핸들을 반환합니다. 그렇지 않으면 NULL입니다. 이 핸들은 더 이상 필요하지 않은 경우 CertCloseServerOcspResponse 함수에 전달되어야 합니다.

확장 오류 정보는 GetLastError를 호출합니다. GetLastError 함수에서 반환할 수 있는 오류 코드는 다음과 같습니다.

반환 코드 설명
ERROR_INVALID_PARAMETER
하나 이상의 매개 변수가 유효하지 않습니다.
CRYPT_E_NOT_IN_REVOCATION_DATABASE
최종 인증서에는 OCSP AIA(기관 정보 액세스) URL이 포함되어 있지 않습니다.

설명

dwFlags가 0으로 설정되면 CertOpenServerOcspResponse 함수는 반환되기 전에 초기 OCSP 응답을 검색하려고 시도합니다. 검색하는 동안 프로세스 스레드를 차단합니다. CertOpenServerOcspResponse 함수는 시간이 유효한 OCSP 응답을 프리페치하는 백그라운드 스레드를 만듭니다. 첫 번째 OCSP 응답을 성공적으로 검색할 수 없는 경우 위에서 언급한 오류 사례 중 하나가 아닌 경우에도 NULL이 아닌 핸들이 반환됩니다.

dwFlags가 1 또는 CERT_SERVER_OCSP_RESPONSE_ASYNC_FLAG 설정되면 CertOpenServerOcspResponse 함수는 초기 동기 검색을 하지 않고 즉시 반환됩니다.

CertOpenServerOcspResponse 함수는 pChainContext 매개 변수가 나타내는 체인 컨텍스트에 대한 참조 수를 증가합니다. 체인 컨텍스트 사용을 마쳤으면 CertCloseServerOcspResponse 함수를 호출하여 반환된 핸들을 닫습니다.

CertOpenServerOcspResponse 함수는 다음 함수에서 사용하는 구성 설정을 초기화합니다.

먼저 CertOpenServerOcspResponse 함수는 Wincrypt.h의 기본값에 따라 설정을 초기화합니다. 함수는 이후에 CERT_CHAIN_CONFIG_REGPATH 정의된 레지스트리 키를 찾으면 이전에 초기화된 값을 레지스트리 값으로 업데이트합니다.

다음 구성 설정 이름 및 기본값은 이 함수에 의해 초기화됩니다.

  • CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_VALUE_NAME

    L"SrvOcspRespMinValiditySeconds"

    CertGetServerOcspResponseContext에서 반환할 서버 OCSP 응답의 최소 시간 유효성입니다. OCSP 응답 유효성은 클라이언트가 시간이 유효한 것으로 처리할 만큼 충분히 길어야 합니다.

  • CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_DEFAULT

    (10 × 60)

    10분.

  • CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME

    L"SrvOcspRespUrlRetrievalTimeoutMilliseconds"

    이는 OCSP 응답 프리페치 와이어 URL 검색 시간이 초과되기 전의 최대 시간입니다.

  • CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT

    (15 × 1000)

    15초.

  • CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME

    L"SrvOcspRespMaxBeforeNextUpdateSeconds"

    이는 OCSP 응답의 NextUpdate 날짜 이전에 서버 OCSP 응답 프리페치 검색을 수행하는 최대 시간(초)입니다. 서버 OCSP 응답 스레드는 현재 시간이 NextUpdate 날짜에서 프리페치 검색을 수행하기 위해 이 시간(초)을 뺀 값보다 크거나 같을 때까지 대기합니다.

  • CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT

    (4×60× 60)

    4시간입니다.

  • CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME

    L"SrvOcspRespMinBeforeNextUpdateSeconds"

    이는 OCSP 응답의 NextUpdate 날짜 이전에 서버 OCSP 응답 프리페치 검색을 수행하는 최소 시간(초)입니다. 현재 시간이 NextUpdate 날짜에서 이 초 수를 뺀 값보다 크거나 같으면 서버 OCSP 응답 스레드는 NextUpdate 날짜와 프리페치 검색을 수행하기 전에 CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME 시간(초 ) 이 될 때까지 대기합니다.

  • CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT

    (2 × 60)

    2분.

  • CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME

    L"SrvOcspRespMinAfterNextUpdateSeconds"

    OCSP 응답의 NextUpdate 날짜 이후 서버 OCSP 응답 프리페치 검색을 수행하는 최소 시간(초)입니다. 현재 시간이 NextUpdate 날짜보다 크면 CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME 초 수를 뺀 값이지만 NextUpdate 날짜보다 작으면 서버 OCSP 응답 스레드는 NextUpdate 날짜 이후에 이 시간(초)을 대기하여 프리페치 검색을 수행합니다.

  • CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT

    (1 × 60)

    1분.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wincrypt.h
라이브러리 Crypt32.lib
DLL Crypt32.dll

추가 정보

CertCloseServerOcspResponse