인증서 빌드
인증서를 빌드할 때 호출 순서는 다음과 같습니다.
- CA(인증 기관)는 ICertPolicy 및 ICertExit 호출을 통해 모듈을 초기화합니다(서버 초기화 시 한 번 발생). CA는 ICertPolicy2::Initialize 및 ICertExit::Initialize를 호출하여 정책을 초기화하고 모듈을 종료합니다.
- 중간자는 ICertConfig 를 통해 CA를 호출합니다(중간 초기화당 한 번 발생). 중개자가 ICertConfig::GetConfig를 호출하여 필요한 구성 문자열을 찾습니다.
- 클라이언트는 중개자 관련 인터페이스를 통해 중간자를 호출합니다(요청당 한 번 발생). 클라이언트는 중간 사용자에게 인증서 요청을 보냅니다. 예를 들어 Microsoft 인터넷 Explorer 인증서 등록 제어를 통해 Microsoft 인터넷 정보 서비스 요청을 보낼 수 있습니다.
- ICertRequest를 통해 CA로의 중간자(요청당 한 번 발생). 중개자는 ICertRequest::Submit를 통해 CA에 인증서 요청을 보냅니다. 인터넷 정보 서비스의 경우 활성 서버 페이지 스크립트를 통해 수행할 수 있습니다.
- CA는 ICertPolicy 인터페이스를 통해 정책 모듈을 호출합니다(요청당 한 번 발생). CA는 ICertPolicy::VerifyRequest를 호출하여 요청이 도착했음을 정책 모듈에 알릴 수 있습니다. 정책 모듈은 ICertServerPolicy 인터페이스의 메서드를 호출하여 요청을 검사하고 인증서를 변경할 수 있습니다. 그런 다음 정책 모듈은 요청이 정상임을 나타낼 수 있습니다(이 시점에서 인증서가 빌드된 경우), 요청이 거부되거나 요청이 일시 중단되어야 합니다.
- (선택 사항) 관리자는 ICertAdmin 인터페이스를 통해 CA를 호출합니다. 요청이 일시 중단된 경우 관리자는 요청을 다시 제출하거나 거부하거나 요청 특성 및 확장을 수정할 수 있습니다. 요청이 다시 제출되면 정책 모듈은 ICertPolicy::VerifyRequest 호출의 결과로 요청을 처리할 수 있는 또 다른 기회를 갖게 됩니다. 요청을 다시 제출하거나 거부하는 작업은 인증 기관 MMC 스냅인 또는 ICertAdmin을 사용하는 다른 애플리케이션을 통해 수행할 수 있습니다.
- CA는 ICertExit 인터페이스를 통해 종료 모듈을 호출합니다. 종료 모듈이 발급된 인증서 또는 보류 중인 요청을 확인하는 데 관심이 있음을 (1단계에서 ICertExit::Initialize 가 호출되었을 때) 표시한 경우 CA는 ICertExit::Notify를 호출합니다.
- 종료 모듈은 ICertServerExit 인터페이스를 통해 CA를 호출합니다. 종료 모듈은 ICertServerExit의 메서드를 호출하여 요청 및 새 인증서를 검사할 수 있습니다.