Criando um certificado
A ordem das chamadas na criação de um certificado é a seguinte:
- A AC (autoridade de certificação ) inicializa módulos por meio de chamadas para ICertPolicy e ICertExit (acontece uma vez na inicialização do servidor). A AC inicializará a política e sairá dos módulos chamando ICertPolicy2::Initialize e ICertExit::Initialize.
- O intermediário chama a AC por meio de ICertConfig (ocorre uma vez por inicialização intermediária). O intermediário localiza a cadeia de caracteres de configuração necessária chamando ICertConfig::GetConfig.
- O cliente chama o intermediário por meio de uma interface específica para o intermediário (ocorre uma vez por solicitação). O cliente envia uma solicitação de certificado para o intermediário. Isso pode ser, por exemplo, o Microsoft Internet Explorer enviar uma solicitação por meio do Controle de Registro de Certificado para Serviços de Informações da Internet da Microsoft.
- Intermediário para AC por meio de ICertRequest (ocorre uma vez por solicitação). O intermediário envia a solicitação de certificado para a AC por meio de ICertRequest::Submit. No caso dos Serviços de Informações da Internet, isso pode ser feito por meio de scripts do Active Server Pages.
- A AC chama o Módulo de Política por meio da interface ICertPolicy (ocorre uma vez por solicitação). A AC notifica o módulo de política de que uma solicitação chegou chamando ICertPolicy::VerifyRequest. O módulo de política pode examinar a solicitação e alterar o certificado chamando métodos da interface ICertServerPolicy . O módulo de política pode indicar que a solicitação está OK (nesse caso, o certificado é criado neste ponto), a solicitação deve ser negada ou a solicitação deve ser suspensa.
- (Opcional) O administrador chama a AC por meio da interface ICertAdmin . Se a solicitação for suspensa, o administrador poderá reenviar ou negar a solicitação ou modificar atributos e extensões de solicitação. Observe que, se a solicitação for reenviada, o Módulo de Política terá outra oportunidade de processar a solicitação (como resultado de uma chamada para ICertPolicy::VerifyRequest). A tarefa de reenviar ou negar a solicitação pode ser executada por meio do snap-in MMC da Autoridade de Certificação ou outro aplicativo que usa ICertAdmin.
- A AC chama o módulo de saída por meio da interface ICertExit . Se o módulo de saída tiver indicado (quando ICertExit::Initialize foi chamado, na etapa 1) que ele está interessado em ver certificados emitidos ou solicitações mantidas pendentes, a AC chamará ICertExit::Notify.
- O módulo de saída chama a AC por meio da interface ICertServerExit . O módulo de saída pode examinar a solicitação e o novo certificado chamando métodos de ICertServerExit.