다음을 통해 공유


IBackgroundCopyJobHttpOptions3::SetServerCertificateValidationInterface 메서드(bits10_3.h)

서버 인증서는 HTTPS 연결이 열릴 때 전송됩니다. 이 메서드를 사용하여 호출할 콜백을 설정하여 해당 서버 인증서의 유효성을 검사합니다.

통사론

HRESULT SetServerCertificateValidationInterface(
  IUnknown *certValidationCallback
);

매개 변수

certValidationCallback

형식: IUnknown

IBackgroundCopyServerCertificateValidationCallback구현하는 개체에 대한 포인터입니다. 현재 콜백 인터페이스 포인터를 제거하려면 이 매개 변수를 nullptr.

반환 값

형식: HRESULT

함수가 성공하면 S_OK반환합니다. 그렇지 않으면 HRESULT오류 코드반환합니다.

반환 값 묘사
E_NOINTERFACE IBackgroundCopyServerCertificateValidationCallback대해 쿼리할 수 없는 인터페이스 포인터를 전달합니다.
BG_E_READ_ONLY_WHEN_JOB_ACTIVE 콜백을 설정하려면 작업 상태를 일시 중지해야 합니다.

발언

서버 인증서에서 사용자 고유의 검사를 수행하려는 경우 이 메서드를 사용합니다.

IBackgroundCopyServerCertificateValidationCallback 인터페이스를 구현하는 경우에만 이 메서드를 호출합니다.

애플리케이션이 종료되면 유효성 검사 인터페이스가 유효하지 않습니다. BITS는 유효성 검사 인터페이스의 레코드를 유지하지 않습니다. 따라서 애플리케이션의 초기화 프로세스는 인증서 유효성 검사 요청을 수신하려는 기존 작업에서 SetServerCertificateValidationInterface 호출해야 합니다.

둘 이상의 애플리케이션이 SetServerCertificateValidationInterface 호출하여 작업에 대한 알림 인터페이스를 설정하는 경우 마지막으로 호출하는 애플리케이션은 알림을 받게 됩니다. 다른 애플리케이션은 알림을 받지 않습니다.

인증서의 OS 유효성 검사 중에 인증서 오류가 발견되면 연결이 중단되고 사용자 지정 콜백이 호출되지 않습니다. IBackgroundCopyJobHttpOptions::SetSecurityFlags호출하여 OS 유효성 검사 논리를 사용자 지정할 수 있습니다. 예를 들어 예상되는 인증서 유효성 검사 오류를 무시할 수 있습니다.

OS 유효성 검사가 통과하면 TLS 핸드셰이크를 완료하기 전과 HTTP 요청을 보내기 전에 IBackgroundCopyServerCertificateValidationCallback::ValidateServerCertificate 메서드가 호출됩니다.

유효성 검사 메서드가 인증서를 거부하면 작업이 BG_ERROR_CONTEXT_SERVER_CERTIFICATE_CALLBACK 작업 오류 컨텍스트와 콜백에서 HRESULT 오류가 있는 BG_JOB_STATE_TRANSIENT_ERROR 전환됩니다. 콜백을 호출할 수 없는 경우(예: BITS가 프로그램을 종료한 후 서버 인증서의 유효성을 검사해야 했기 때문에) 작업 오류 코드가 BG_E_SERVER_CERT_VALIDATION_INTERFACE_REQUIRED. 애플리케이션이 다음에 실행되면 유효성 검사 콜백을 다시 설정하고 작업을 다시 시작하여 이 오류를 해결할 수 있습니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 10 버전 1809 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2016 [데스크톱 앱만 해당]
헤더 bits10_3.h(Bits.h 포함)
라이브러리 Bits.lib
DLL Bits.dll

참고 항목

IBackgroundCopyServerCertificateValidationCallback