Network Device Enrollment Service (NDES) - это служба регистрации сетевых устройств, входящая в состав Active Directory Certificate Services (AD CS). Она позволяет маршрутизаторам, коммутаторам и другим сетевым устройствам получать сертификаты по протоколу SCEP (Simple Certificate Enrollment Protocol).
Требования для развертывания NDES:
| В тестовой эксплуатации возможно объединить все роли на одном сервере (как в данной инструкции), но в реальной эксплуатации рекомендуется разделять роли по разным серверам |
Служба NDES должна работать от имени выделенной доменной учетной записи (в данном руководстве: ndes).
Для корректной работы аутентификации Kerberos между пулом IIS (NDES) и сервером ЦС необходимо зарегистрировать имена SPN. Выполните в командной строке от имени администратора домена:
setspn -s http/<NDES-Server-FQDN> <DOMAIN>\ndes
setspn -s http/<NDES-Server-NetBIOS> <DOMAIN>\ndes
По умолчанию NDES использует шаблон IPSECIntermediateOffline. Рекомендуется дублировать шаблон (Duplicate Template) и создать собственный (например, NDES-GeneralPurpose).
Так же рекомендуется дублировать шаблоны CEPEncryption и EnrollmentAgentOffline - в данном примере это будут дубликаты с именами CEPEncryptionNDES и EnrollmentAgentOfflineNDES
Отображаемое имя сертификата сделаем путем добавления к отображаемому имени родительского шаблона текста "для NDES". Т.е. наши шаблоны будут отображены в интерфейсе как "Шифрование CEP для NDES" и "Агент регистрации Exchange (автономный запрос) для NDES"

У шаблона EnrollmentAgentOfflineNDES необходимо разрешить экспорт закрытого ключа.
У шаблонов CEPEncryptionNDES и EnrollmentAgentOfflineNDES необходимо убрать требование одобрения диспетчером сертификатов ЦС.

Также следует проверить поставщиков шифрования - необходимо убедиться, что используются только CSP (Cryptography Service Provider) поставщики, а не KSP (Key Storage Provider).

Мастер установки не производит тонкую настройку пула приложений IIS. Эти шаги необходимо выполнить вручную:
Откройте Диспетчер служб IIS (IIS Manager), перейдите в Пулы приложений (Application Pools). Найдите пулы SCEP и MSCEP. Откройте их Дополнительные параметры (Advanced Settings). В строке Удостоверение (Identity) проверьте, что указана учетная запись ndes
Обязательно переведите параметр Загрузить профиль пользователя (Load User Profile) в значение True.

Откройте regedit и перейдите в ветку HKLM\SOFTWARE\Microsoft\Cryptography\MSCEP. Измените значения строковых параметров SignatureTemplate, EncryptionTemplate и GeneralPurposeTemplate на системные имена (Template Name без пробелов) ваших подготовленных шаблонов.
В данном случае это будут:
Для применения изменений перезапустите службу IIS, выполнив команду iisreset в командной строке от имени администратора. |
Откройте браузер на клиентском устройстве (либо на самом сервере) и перейдите по адресу:
http://<NDES-Server-FQDN>/certsrv/mscep/mscep.dll (в случае с сервером http://localhost/certsrv/mscep/mscep.dll)
Успех: Откроется базовая HTML-страница "Служба регистрации сетевых устройств" (Network Device Enrollment Service).

Ошибка: Вернется код ошибки HTTP 403, 401, 500 или 503.


Помимо сертификатов для конечных устройств, у службы NDES имеются собственные служебные сертификаты (Registration Authority Certificates), необходимые для работы сервиса. Эти сертификаты по умолчанию выпускаются сроком на 2 года. После истечения этого срока могут возникнуть проблемы с восстановлением работоспособности службы NDES даже после перевыпуска данных сертификатов. Чтобы избежать данных проблем сертификаты после окончания срока действия нужно перевыпускать выполнив последовательность дейтсвий описанную ниже.
| Если дубликаты шаблонов не создавались в процессе развертывания сервиса рекомендуется создать дубликаты, как описано в разделе "Подготовка шаблонов сертификатов" |
Этот сертификат машинный, перевыпуск простой.
certlm.msc (Локальный компьютер).| Выполнять это нужно под той учетной записью, которой на Центре Сертификации даны права на чтение и заявку этого шаблона (обычно это сервисная учетная запись NDES или администратор). |
Win + R и введите certmgr.msc (Текущий пользователь).Если в сертификатах NDES больше одного сертификата каждого типа, то служба не будет работать, а в журнале будет появляется ошибка 0x80070057
После всех вышеописанных действий необходимо перезапустить IIS командой iisreset
Проблема | Симптомы | Причина | Решение
|
|---|---|---|---|
Ошибка HTTP 500 или 503 при открытии страницы mscep.dll | Пул приложений SCEP останавливается сразу после обращения. В логах IIS фиксируется статус 503. | IIS не может запустить процесс от имени сервисной учетной записи, либо не загружен профиль. | В Локальной политике безопасности дайте ndes право Вход в качестве пакетного задания. В пуле IIS установите Загрузить профиль пользователя в True. |
Ошибки Event ID 29, 31 или 32 от источника NDES | Служба сообщает, что не может получить требуемые сертификаты. | NDES не может выписать себе сертификаты при старте, либо указаны неверные имена шаблонов. | Проверьте системные имена шаблонов в реестре. Убедитесь, что ndes имеет права Чтение и Заявка, и шаблоны опубликованы на ЦС. |
Устройства получают HTTP 401 (Unauthorized) | Сетевое оборудование не может получить сертификат (ошибки 401.x в логах IIS). | Неверная настройка методов аутентификации в IIS. | В IIS (приложение certsrv/mscep) отключите Проверку подлинности Windows и включите Анонимную проверку подлинности. |
Запросы зависают ("Pending") или "RPC Server Unavailable" | Запросы остаются в папке Ожидающие запросы ЦС. | В шаблоне включено ручное одобрение, или заблокирован RPC-трафик между NDES и ЦС. | Снимите флажок "Требуется одобрение" в шаблоне. Откройте порты TCP 135 и динамические порты RPC (TCP 49152-65535). |
Исчерпание лимита паролей при массовом развертывании | Часть устройств успешно получает сертификаты, остальные отклоняются по таймауту. | NDES по умолчанию кэширует не более 5 динамических паролей (срок жизни 60 минут). | В реестре увеличьте значение параметра PasswordMax (например, до 50) и PasswordValidity. |
Внезапная остановка сервиса (Истекли RA-сертификаты) | Сервис перестал обрабатывать SCEP-запросы. Event ID 30, 31, 33. | Истек срок действия служебных сертификатов агента регистрации NDES. | Откройте certlm.msc -> Личные -> Сертификаты. Запросите новые сертификаты вручную, используя соответствующие шаблоны. |
Конфликт старых и новых RA-сертификатов | Служба не функционирует. Ошибка о наличии нескольких сертификатов (Multiple certificates found). | NDES обнаружил в хранилище как старые, так и новые сертификаты с требуемыми OID. | Удалите старые/невалидные сертификаты агента регистрации (должно остаться строго 2). Выполните iisreset. |
Нет доступа к закрытому ключу сертификатов RA | Ошибки о недоступности криптопровайдера. | ndes не имеет прав на чтение закрытых ключей перевыпущенных служебных сертификатов. | В certlm.msc (Управление закрытыми ключами) добавьте учетную запись ndes и предоставьте ей права Чтение на оба сертификата. |
Ошибка SSL/TLS на стороне клиента | Оборудование не может установить HTTPS соединение с NDES. | Проблемы с SSL-сертификатом веб-сервера IIS (самоподписан, истек, не совпадает SAN). | В IIS проверьте Привязки (Bindings). Для HTTPS используйте валидный сертификат, выданный доверенным ЦС, с корректным SAN. |