Compartir a través de


enrollCustomPKCS10

El ejemplo enrollCustomPKCS10 crea una solicitud PKCS #10 personalizada, la envía a una entidad de certificación (CA) independiente e instala el certificado emitido en el almacén de certificados. Una entidad de certificación independiente no requiere Active Directory y no usa plantillas.

Location

Al instalar el Kit de desarrollo de software (SDK) de Microsoft Windows, el ejemplo se instala de forma predeterminada en la carpeta %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\enrollCustomPKCS10.

Debate

El ejemplo enrollCustomPKCS10:

  1. Procesa los argumentos de la línea de comandos. La línea de comandos debe contener el nombre del firmante del certificado X.500, el nombre del correo electrónico (RFC822) y un identificador de objeto de uso mejorado de claves (EKU) (OID). Por ejemplo, puede especificar los argumentos siguientes para inscribir user1@example.com:
    • Nombre del firmante: "CN=user1,DC=example,DC=com"
    • RfC822 name: user1@example.com
    • OID de EKU de autenticación de cliente: 1.3.6.1.5.5.7.3.2
  2. Crea un objeto IX509CertificateRequestPkcs10 y lo inicializa para el usuario final especificando el valor ContextUser de la enumeración X509CertificateEnrollmentContext .
  3. Crea un objeto IX500DistinguishedName , usa el objeto para codificar el nombre del firmante en una matriz de bytes y agrega la matriz al objeto de solicitud PKCS #10.
  4. Crea un objeto IObjectId , lo inicializa mediante el identificador de objeto de EKU (OID) especificado en la línea de comandos, crea una colección IObjectIds , agrega el nuevo objeto IObjectId (EKU) a la colección, usa la colección para inicializar un objeto IX509ExtensionEnhancedKeyUsage y agrega este objeto a la solicitud.
  5. Crea un objeto IAlternativeName , lo inicializa mediante el nombre RFC822 especificado en la línea de comandos, Crea una colección IAlternativeNames , agrega el nuevo objeto IAlternativeName (nombre RFC822 ) a la colección, crea un objeto IX509ExtensionAlternativeNames y agrega este objeto a la solicitud.
  6. Crea un objeto IX509Enrollment , lo inicializa mediante el objeto IX509CertificateRequestPkcs10 y recupera una cadena que contiene una solicitud codificada en base64.
  7. Crea un objeto ICertConfig y lo usa para recuperar una cadena que contiene la configuración de ca.
  8. Crea un objeto CryptoAPI ICertRequest2 y lo usa más las cadenas que contienen la configuración de ca y la solicitud de certificado para enviar la solicitud a la CA.
  9. Comprueba el estado del envío y, si la inscripción es correcta, instala el certificado en el almacén de certificados.

Solicitud PKCS #10

Uso de los ejemplos incluidos