Ошибка «В запросе отсутствует информация о шаблоне сертификата» (в англоязычной версии — «The request contains no certificate template information», код 0x80094801, CERTSRV_E_NO_CERT_TYPE) — одна из самых распространённых проблем при работе с центром сертификации (Certification Authority, CA) в инфраструктуре Microsoft Active Directory. В этой статье мы подробно разберём, почему возникает эта ошибка и как её устранить.
Что означает эта ошибка
Корпоративный центр сертификации (Enterprise CA) в Windows Server выдаёт сертификаты только на основе шаблонов сертификатов. Шаблон определяет:
- назначение сертификата (проверка подлинности пользователя, компьютера, подпись кода и т.д.);
- срок действия;
- размер и алгоритм ключа;
- права на запрос сертификата;
- способ формирования имени субъекта.
Если в запросе на сертификат (CSR) нет явного указания на шаблон, центр сертификации не понимает, по каким правилам выдавать сертификат, и отклоняет запрос с указанной ошибкой.
Типичные сценарии возникновения
Подача CSR через веб-интерфейс CA
Чаще всего ошибка появляется при использовании веб-страницы регистрации (https://server/certsrv), когда администратор вставляет готовый запрос, созданный на стороннем устройстве (веб-сервер Apache/Nginx, сетевое оборудование, Linux-система). Такой CSR, естественно, не содержит сведений о шаблоне Microsoft.
Использование certreq.exe
При подаче запроса командой certreq -submit request.csr без указания атрибута шаблона возникает та же проблема.
Автоматическая регистрация (autoenrollment)
Ошибка может появляться в журнале событий, если шаблон не опубликован на CA или у учётной записи нет прав на регистрацию.
Способы решения
Способ 1. Указать шаблон через веб-интерфейс
При подаче запроса через certsrv выберите «Расширенный запрос сертификата» и в поле «Шаблон сертификата» явно укажите нужный шаблон, например «Веб-сервер» (Web Server).
Способ 2. Добавить атрибут шаблона через certreq
Подайте запрос командой:
certreq -submit -attrib "CertificateTemplate:WebServer" request.csr
Здесь WebServer — внутреннее имя шаблона (без пробелов). Узнать имена доступных шаблонов можно командой:
certutil -CATemplates
Способ 3. Включить шаблон в INF-файл запроса
Если запрос создаётся с помощью certreq -new, добавьте в INF-файл строку:
RequestType = PKCS10
[RequestAttributes]
CertificateTemplate = WebServer
Способ 4. Проверить публикацию шаблона на CA
- Откройте консоль «Центр сертификации» (certsrv.msc).
- Перейдите в раздел «Шаблоны сертификатов».
- Убедитесь, что нужный шаблон присутствует в списке. Если нет — выберите «Создать» → «Выдаваемый шаблон сертификата» и добавьте его.
Способ 5. Проверить разрешения на шаблон
В консоли «Шаблоны сертификатов» (certtmpl.msc) откройте свойства шаблона, вкладку «Безопасность» и убедитесь, что у пользователя или компьютера есть права «Чтение» и «Регистрация» (Enroll).
Дополнительные рекомендации
- Для автономного (Standalone) CA шаблоны не используются — там эта ошибка не возникает, но и возможности управления ограничены.
- Проверяйте журнал событий «Приложение» на CA — события с кодом ошибки помогают точно определить причину.
- После изменения разрешений на шаблон может потребоваться время на репликацию Active Directory.
Ошибка «В запросе отсутствует информация о шаблоне сертификата» решается в большинстве случаев простым указанием шаблона при подаче запроса — через веб-интерфейс, параметр -attrib утилиты certreq или INF-файл. Если шаблон указан, но ошибка сохраняется, проверьте публикацию шаблона на CA и права доступа к нему. Следуя приведённым шагам, вы быстро восстановите выдачу сертификатов в вашей инфраструктуре.