Поделиться через


enrollEOBOCMC

Пример enrollEOBOCMC создает запрос сертификата CMC от имени другого пользователя и регистрирует пользователя в иерархии сертификатов. Для регистрации от имени другого пользователя требуется, чтобы запрос на сертификат был подписан с помощью сертификата агента регистрации.

Расположение

При установке пакета SDK microsoft Windows пример по умолчанию устанавливается в папку %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\enrollEOBOCMC.

Обсуждение

Пример enrollEOBOCMC:

  1. Обрабатывает следующие аргументы командной строки:
    • Имя шаблона сертификата.
    • Имя пользователя, запрашивающего сертификат.
    • Имя файла обмена личной информацией (PFX), в котором будет сохранен запрос.
    • Пароль для использования с PFX-файлом.
    • Необязательное имя шаблона агента регистрации. Шаблон используется для создания сертификата агента регистрации, если его нет в хранилище сертификатов.
  2. Создает объект IX509CertificateRequestCmc и инициализирует его с помощью шаблона сертификата, указанного в командной строке.
  3. Добавляет имя инициатора запроса в объект запроса CMC.
  4. Извлекает существующий сертификат агента регистрации или, если его не удается найти, создает запрос на сертификат из шаблона агента регистрации, указанного в командной строке, и пытается зарегистрировать его.
  5. Проверяет цепочку сертификатов, содержащую сертификат агента регистрации.
  6. Создает объект ISignerCertificate , инициализирует его с помощью сертификата агента регистрации, извлекает коллекцию ISignerCertificates из объекта запроса CMC и добавляет объект сертификата подписи агента регистрации в коллекцию. Объект IX509Enrollment , рассматриваемый на следующем шаге, использует сертификат для подписания запроса CMC.
  7. Создает объект IX509Enrollment , инициализирует его с помощью запроса CMC, пытается зарегистрировать его и проверяет ход процесса регистрации.
  8. Экспортирует установленный сертификат в PFX-файл. Файл защищен с помощью пароля, указанного в командной строке. Функция EncodeToFileW определена в enrollCommon.cpp.
  9. Удаляет сертификат из хранилища сертификатов. Функции, используемые в следующем примере кода, можно найти в документации CryptoAPI.
  10. Удаляет закрытый ключ с компьютера.

Запрос CMC EOBO

Запрос PKCS #10

Использование включенных примеров