Служба сертификатов Active Directory - Как составить список всех доступных шаблонов сертификатов на CA Server? - PullRequest
0 голосов
/ 11 января 2019

У меня CA-сервер настроен в Windows Server. У меня есть код клиента в C #, который создал CSR отправляет на сервер и загружает выданный сертификат с сервера. Я хочу знать, можно ли получить список шаблонов сертификатов , которые есть на сервере CA, используя C # код?

1 Ответ

0 голосов
/ 11 января 2019

Список назначенных шаблонов CA-серверов можно получить с помощью COM-интерфейса ICertRequest2 и вызова метода ICertRequest2::GetCAProperty.

Вам нужно будет добавить CertCli ссылку на библиотеку COM (в Visual Studio). Кроме того, вы можете создать библиотеку introp с помощью инструмента tlbimp.exe из библиотеки certcli.dll, а затем использовать класс CCertRequest, который реализует интерфейс ICertRequest.

Чтобы получить список шаблонов сертификатов, передайте значение CR_PROP_TEMPLATES в параметре dwPropId. Для получения более подробной информации о вызове метода GetCAProperty вы можете обратиться к описанию ICertRequestD2::GetCAProperty DCOM, которое является частью спецификации протокола MS-WCCE.

Метод возвращает строковое значение в следующем формате: TemplateName1\nTemplateOID1\nTemplateName2\nTemplateOID2\.... Вы можете разбить эту строку с символом \n на массив строк, где каждый четный элемент (с учетом индекса, начинающегося с нуля) представляет отображаемое имя шаблона (не общее имя или атрибут cn), а нечетный элемент представляет OID шаблона. Подробнее о выводе: [MS-WCCE] §3.2.2.6.3.1.1 PropID = 0x0000001D (CR_PROP_TEMPLATES) «Настроенные шаблоны сертификатов»

...