enrollCustomPKCS10
Пример enrollCustomPKCS10 создает пользовательский запрос PKCS #10, отправляет его в автономный центр сертификации (ЦС) и устанавливает выданный сертификат в хранилище сертификатов. Автономный ЦС не требует Active Directory и не использует шаблоны.
Расположение
При установке пакета SDK microsoft Windows пример по умолчанию устанавливается в папку %ProgramFiles%\Microsoft SDK\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\enrollCustomPKCS10.
Обсуждение
Пример enrollCustomPKCS10:
- Обрабатывает аргументы командной строки. Командная строка должна содержать имя субъекта сертификата X.500, имя электронной почты (RFC822) и идентификатор объекта расширенного использования ключа (EKU). Например, можно указать следующие аргументы для регистрации user1@example.com:
- Имя субъекта: "CN=user1,DC=example,DC=com"
- Имя RFC822: user1@example.com
- Идентификатор EKU для проверки подлинности клиента: 1.3.6.1.5.5.7.3.2
- Создает объект IX509CertificateRequestPkcs10 и инициализирует его для конечного пользователя, указывая значение ContextUser перечисления X509CertificateEnrollmentContext .
- Создает объект IX500DistinguishedName , использует объект для кодирования имени субъекта в массив байтов и добавляет массив в объект запроса PKCS #10.
- Создает объект IObjectId , инициализирует его с помощью идентификатора объекта EKU (OID), указанного в командной строке, создает коллекцию IObjectIds , добавляет новый объект IObjectId (EKU) в коллекцию, использует коллекцию для инициализации объекта IX509ExtensionEnhancedKeyUsage и добавляет этот объект в запрос.
- Создает объект IAlternativeName , инициализирует его с помощью имени RFC822, указанного в командной строке. Создает коллекцию IAlternativeNames , добавляет новый объект IAlternativeName (имя RFC822) в коллекцию, создает объект IX509ExtensionAlternativeNames и добавляет этот объект в запрос.
- Создает объект IX509Enrollment , инициализирует его с помощью объекта IX509CertificateRequestPkcs10 и извлекает строку, содержащую запрос в кодировке base64.
- Создает объект ICertConfig и использует его для получения строки, содержащей конфигурацию ЦС.
- Создает объект ICertRequest2 CryptoAPI и использует его, а также строки, содержащие конфигурацию ЦС и запрос сертификата для отправки запроса в ЦС.
- Проверяет состояние отправки и, если регистрация прошла успешно, устанавливает сертификат в хранилище сертификатов.
Связанные темы