enrollCustomPKCS10
O exemplo enrollCustomPKCS10 cria uma solicitação PKCS #10 personalizada, envia-a a uma AC (autoridade de certificação autônoma) e instala o certificado emitido no repositório de certificados. Uma AC autônoma não requer o Active Directory e não usa modelos.
Localização
Quando você instala o SDK (Microsoft Windows Software Development Kit), o exemplo é instalado, por padrão, na pasta %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\enrollCustomPKCS10.
Discussão
O exemplo enrollCustomPKCS10:
- Processa os argumentos de linha de comando. A linha de comando deve conter o nome da entidade do certificado X.500, o nome do email (RFC822) e um identificador de objeto EKU (Uso Avançado de Chave) (OID). Por exemplo, você pode especificar os seguintes argumentos para registrar user1@example.com:
- Nome da entidade: "CN=user1,DC=example,DC=com"
- Nome rfc822: user1@example.com
- OID de EKU de autenticação do cliente: 1.3.6.1.5.5.7.3.2
- Cria um objeto IX509CertificateRequestPkcs10 e o inicializa para o usuário final especificando o valor ContextUser da enumeração X509CertificateEnrollmentContext.
- Cria um objeto IX500DistinguishedName, usa o objeto para codificar o nome do assunto a uma matriz de bytes e adiciona a matriz ao objeto de solicitação PKCS #10.
- Cria um objetoIObjectId, inicializa-o usando o OID (identificador de objeto EKU) especificado na linha de comando, cria uma coleção IObjectIds, adiciona o novo objeto IObjectId (EKU) à coleção, usa a coleção para inicializar um objeto IX509ExtensionEnhancedKeyUsage e adiciona esse objeto à solicitação.
- Cria um objetoIAlternativeName, inicializa-o usando o nome RFC822 especificado na linha de comando, cria uma coleçãoIAlternativeNames, adiciona o novo objeto IAlternativeName (nome RFC822) à coleção, cria um objeto IX509ExtensionAlternativeNames e adiciona esse objeto à solicitação.
- Cria um objetoIX509Enrollment, inicializa-o usando o objetoIX509CertificateRequestPkcs10e recupera uma cadeia de caracteres que contém uma solicitação codificada em base64.
- Cria um objeto ICertConfig e o usa para recuperar uma cadeia de caracteres que contém a configuração de AC.
- Cria um objeto ICertRequest2 cryptoAPI e o usa mais as cadeias de caracteres que contêm a configuração de AC e a solicitação de certificado para enviar a solicitação à AC.
- Verifica o status do envio e, se o registro for bem-sucedido, instalará o certificado no repositório de certificados.
Tópicos relacionados