Я хочу использовать SCEP выдавать клиентские сертификаты, возможно, используя ADCS. У нас уже есть внутренний автономный корневой ЦС (надежно в сейфе, используется только для подписи и отзыва промежуточных центров сертификации), и этому корню доверяют все внутренние клиенты и серверы.
Для подписания клиентских сертификатов я хочу создать промежуточное звено, которое может только это: подписывать клиентские сертификаты. В частности, я не хочу, чтобы можно было подписывать сертификаты сервера с помощью этого промежуточного звена (причина в том, что промежуточное звено по необходимости должно быть в онлайн-системе, и я хочу ограничить возможный ущерб в случае его нарушения)
Это вообще возможно?
Если вы создадите промежуточный ЦС только с сертификатом аутентификации клиента EKU (1.3.6.1.5.5.7.3.2), то даже если шаблон будет изменен, чтобы он мог подтверждать сертификаты аутентификации сервера, они не смогут пройти цепочку.
В Windows это сообщит об ошибке с листовым сертификатом / EE со статусом CERT_TRUST_IS_NOT_VALID_FOR_USAGE
(или, в .NET, X509ChainStatusFlags.NotValidForUsage
).
С помощью интегрированных в AD CA вы можете указать шаблоны сертификатов, которые CA может выдавать. Так, да ты можешь.
Но обратите внимание: шаблоны сертификатов хранятся в Forest Root. Таким образом, администратор Forest Root может изменять доступные шаблоны сертификатов! Администратор домена или локальный администратор подчиненного ЦС может изменять шаблоны, предоставленные подчиненным ЦС. Таким образом, вы должны дополнительно установить соответствующие права доступа к шаблонам.