Назад | Перейти на главную страницу

Можно ли подписывать CSR пакетами (например, с помощью certutil)?

У меня есть около 100 CSR для подписания на PKI Windows. Я хотел бы знать, можно ли отправлять, выпускать и экспортировать эти CSR в пакетном режиме с помощью пакетного сценария или сценария PowerShell, возможно, используя cert util, и как это сделать.

Мои поиски ничего не дали, но я все же думаю, что это возможно. Любая помощь будет принята с благодарностью.

Спасибо.

Я нашел этот вопрос, пытаясь сделать нечто подобное; У меня было несколько CSR в формате Base64, сгенерированных устройствами HP iLO, и я хотел подписать их все с помощью нашего корпоративного центра сертификации служб сертификации AD.

В конце концов мне удалось это сделать с помощью этой команды:

certreq -config "caserver01.mydomain.com\Name of My CA" -attrib "CertificateTemplate:CNOfMyCertificateTemplate" -submit c:\myCSR.csr c:\pathToSaveCertificate.cer

NB //

  • Вам необходимо указать CN шаблона сертификата, а не отображаемое имя. Я нашел CN, посмотрев здесь с помощью ADSIedit:

    CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=mydomain,DC=com
    
  • Имя всех центров сертификации предприятия в домене можно найти, запустив

    certutil -dump
    
  • Моя учетная запись пользователя не требует утверждения для использования этого шаблона сертификата, поэтому они выдаются автоматически и сразу же загружаются с помощью certreq. Я не уверен, как это было настроено в CA, и даже если это особенно хорошая идея. Если запрос должен быть одобрен, я считаю, что вам нужно будет запустить отдельную команду «certreq -retrieve», чтобы загрузить сертификат после его утверждения.

Надеюсь, это кому-то поможет!

Я использую инструменты командной строки в автономном ЦС Windows 2003, но я почти уверен, что они работают таким же образом и в более новых версиях.

Отправить запрос

certreq.exe -config .\MyCA -submit myhost1.req

Это возвращает что-то вроде этого:

RequestId: 555
Certificate request is pending: Taken Under Submission (0)

Затем вы можете отправить запрос:

certutil.exe -resubmit 555

и экспортируем в файл:

certreq.exe -config .\MyCA -Retrieve 555 myhost1.cer

Итак, с этими знаниями и 100 файлами запросов в каталоге вы можете использовать PowerShell:

  • Просмотрите все файлы и выполните три команды для каждого файла.
  • Вам нужно проанализировать вывод certreq submit , чтобы получить идентификатор запроса, который вам понадобится на следующих двух шагах.

-config .\myCA - указать используемый ЦС, в данном случае ЦС с именем «myCA» на локальном компьютере.

Если у вас уже есть запросы в системе, вам нужно перебрать все ожидающие, а затем выполнить последние два шага для каждого из них.