Посредники

Посредники взаимодействуют с клиентскими приложениями, чтобы они могли отправлять запросы на сертификаты, и (при условии, что запрос приводит к выдаче сертификата) для скачивания выданного сертификата клиенту. Для каждого протокола транспортного уровня требуется собственный посредник.

Службы сертификатов Майкрософт поставляемы с промежуточным сервером (страницы веб-регистрации) для HTTP. Другим примером посредника является оснастка MMC сертификатов Microsoft Windows (которая позволяет вызывать мастер запросов сертификатов). Если со службами сертификатов будут использоваться другие протоколы транспортного уровня, разработчик может создать посредника для каждого нужного протокола транспортного уровня.

Посредники взаимодействуют со службами сертификатов с помощью интерфейсов ICertRequest и ICertConfig , предоставляемых подсистемой сервера. Метод ICertRequest::Submit используется для отправки запроса на сертификат, а метод ICertRequest::GetCertificate — для получения полученного выданного сертификата. Аналогичным образом ICertConfig::GetConfig используется для определения того, какой центр сертификации можно использовать для выдачи сертификата.

Посредник не зависит от языка. Это может быть программа, написанная на C++, Visual Basic, Java, скрипте или другом языке.

Помимо сбора данных от клиента для создания запроса сертификата, посредник может указать атрибуты запроса. Запросы, отправленные в центр сертификации с модулем корпоративной политики, должны указывать тип запрошенного сертификата, указав атрибут CertificateTemplate или расширение шаблона сертификата в самом запросе.

Обратите внимание, что во время создания запроса на сертификат разработчики (и посредники) несут ответственность за сохранение секретности закрытого ключа. После того как закрытый ключ был скомпрометирован (потерял свою секретность), это бесполезно.

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

Оснастка MMC "Сертификаты" также использует элемент управления регистрацией сертификатов (Xenroll.dll). Однако если страницы веб-регистрации служб сертификатов приводят к скачиванию ресурса элемента управления регистрацией сертификатов (Xenroll.dll) на клиент при необходимости, оснастка MMC "Сертификаты" выполняется в среде, где Xenroll.dll уже является доступным ресурсом.

В дополнение к ICertRequest и ICertConfig разработчики посредников могут оказаться полезными интерфейсы регистрации сертификатов и элемент управления регистрацией смарт-карт .