You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Network Device Enrollment Service (NDES) - это служба регистрации сетевых устройств, входящая в состав Active Directory Certificate Services (AD CS). Она позволяет маршрутизаторам, коммутаторам и другим сетевым устройствам получать сертификаты по протоколу SCEP (Simple Certificate Enrollment Protocol).

Требования для развертывания NDES:

  • Домен Active Directory с развёрнутым Центром сертификации предприятия (Enterprise CA) на базе Windows Server.
  • Сервер Windows Server (можно совместить с CA или использовать выделенный), присоединённый к домену.
  • Учётная запись с правами администратора домена и локального администратора на сервере.
  • Открытый порт TCP 443 (HTTPS) на брандмауэре сервера NDES.
  • Разрешённые протоколы TLS 1.2 и выше (настраиваются в реестре, если необходимо).
В тестовой эксплуатации возможно объединить все роли на одном сервере (как в данной инструкции), но в реальной эксплуатации рекомендуется разделять роли по разным серверам

Установка Network Device Enrollment Service

Сервисная учетная запись

Служба NDES должна работать от имени выделенной доменной учетной записи (в данном руководстве: ndes).

  • На будущем сервере NDES добавьте учетную запись ndes в локальную группу IIS_IUSRS.
  • В консоли Шаблоны сертификатов (Certificate Templates) выдайте этой учетной записи права Чтение (Read) и Заявка (Enroll) на шаблоны, которые будет использовать NDES. NDES использует 2 типа шаблонов - CEPEncryption (Шифрование CEP) и EnrollmentAgentOffline (Агент регистрации Exchange (автономный запрос)).
  • В свойствах самого Центра сертификации (Certification Authority) на вкладке Безопасность (Security) предоставьте ей право Запрос сертификатов (Request Certificates).

Регистрация SPN (Service Principal Name)

Для корректной работы аутентификации 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

У шаблона EnrollmentAgentOfflineNDES необходимо разрешить экспорт закрытого ключа/

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

 

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

Установка и базовая конфигурация

  • Откройте Диспетчер серверов (Server Manager) и перейдите в Добавить роли и компоненты (Add Roles and Features).
  • Выберите роль Службы сертификатов Active Directory (Active Directory Certificate Services) и добавьте службу роли Служба регистрации сетевых устройств (Network Device Enrollment Service).
  • После завершения установки нажмите на предупреждающий значок конфигурации AD CS.
  • Укажите учетную запись с правами Администратора предприятия (Enterprise Admin) для выполнения настройки.
  • На шаге конфигурации NDES укажите подготовленную сервисную учетную запись ndes.
  • Выберите ваш ЦС предприятия (Enterprise CA).
  • Заполните данные для сертификата агента регистрации (Registration Authority, RA) — это сертификат, которым NDES будет подписывать запросы от имени устройств.
  • Завершите работу мастера установки.

Дополнительная настройка (Реестр и IIS)

Мастер установки не производит тонкую настройку пула приложений IIS. Эти шаги необходимо выполнить вручную:

Пул приложений 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 без пробелов) ваших подготовленных шаблонов.

В данном случае это будут:

  • SigantureTemplate - "EnrollmentAgentOfflineNDES"
  • EncryptionTemplate - "CEPEncryptionNDES"
  • GeneralPurposeTemplate - "NDES-GeneralPurpose"
Для применения изменений перезапустите службу 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.

Просмотр журналов

  • Просмотр событий (Event Viewer) -> Журналы Windows (Windows Logs) -> Приложение (Application).
    Фильтр по источнику NetworkDeviceEnrollmentService.
  • Журналы IIS: C:\inetpub\logs\LogFiles\W3SVC1\.
    Здесь фиксируются статусы HTTP-ответов и факты поступления запросов.
  • Журналы ЦС (CA):
    На сервере ЦС в Просмотре событий ищите ошибки от источника CertificationAuthority.

Возможные проблемы

Проблемы сертификатов NDES

Помимо сертификатов для конечных устройств, у службы NDES имеются собственные служебные сертификаты (Registration Authority Certificates), необходимые для работы сервиса. Эти сертификаты по умолчанию выпускаются сроком на 2 года. После истечения этого срока могут возникнуть проблемы с восстановлением работоспособности службы NDES даже после перевыпуска данных сертификатов. Чтобы избежать данных проблем сертификаты после окончания срока действия нужно перевыпускать выполнив последовательность дейтсвий описанную ниже.

Алгоритм перевыпуска сертификатов

Если дубликаты шаблонов не создавались в процессе развертывания сервиса рекомендуется создать дубликаты, как описано в разделе "Подготовка шаблонов сертификатов"
Выпуск сертификата Шифрования CEP (Хранилище компьютера)

Этот сертификат машинный, перевыпуск простой.

  1.     Нажмите Win + R и введите certlm.msc (Локальный компьютер).
  2.     Перейдите в Личное -> Сертификаты.
  3.     Нажмите правой кнопкой -> Все задачи -> Запросить новый сертификат.
  4.     Выберите шаблон Шифрование CEP для NDES (CEPEncryptionNDES) и выпустите его.
Выпуск сертификата Агента заявок (Хранилище пользователя)
Выполнять это нужно под той учетной записью, которой на Центре Сертификации даны права на чтение и заявку этого шаблона (обычно это сервисная учетная запись NDES или администратор).
  1. Нажмите Win + R и введите certmgr.msc (Текущий пользователь).
  2. Перейдите в Личное -> Сертификаты.
  3. Нажмите правой кнопкой -> Все задачи -> Запросить новый сертификат.
  4. Найдите шаблон Exchange Enrollment Agent (Offline request).
  5. КРИТИЧНО: Не нажимайте сразу "Заявка"! Нажмите на ссылку "Для регистрации в этом сертификате требуются дополнительные сведения..." (или кнопку Свойства).
  6. Перейдите на вкладку Закрытый ключ (Private Key), разверните раздел Параметры ключа (Key options) и обязательно поставьте галочку Сделать закрытый ключ экспортируемым (Make private key exportable).
  7. Нажмите ОК и выпустите сертификат.
  8. В той же пользовательской оснастке (certmgr.msc) кликните правой кнопкой мыши по только что выпущенному сертификату Агента -> Все задачи -> Экспорт.
  9. В мастере экспорта обязательно выберите «Да, экспортировать закрытый ключ» (Yes, export the private key).
  10. Оставьте формат .pfx по умолчанию.
  11. Задайте пароль для защиты файла ключа и сохраните .pfx файл на рабочий стол.
  12. Откройте оснастку компьютера (certlm.msc) -> Личное -> Сертификаты.
  13. Правый клик -> Все задачи -> Импорт.
  14. Укажите путь к сохраненному .pfx файлу, введите пароль и завершите импорт.

Очистка от просроченных сертификатов

Если в сертификатах NDES больше одного сертификата каждого типа, то служба не будет работать, а в журнале будет появляется ошибка 0x80070057

  1. В машинной оснастке (certlm.msc) найдите старые (истекшие) сертификаты Шифрования CEP и Агента и удалите их.
  2. Убедитесь, что в certlm.msc осталось ровно два новых сертификата (Шифрование и Агент).
  3. Вернитесь в пользовательскую оснастку (certmgr.msc) и удалите сертификат Агента оттуда тоже (вы его уже перенесли, там он больше не нужен и может только запутать систему в будущем).

Назначение прав на закрытые ключи

  1. В certlm.msc кликните правой кнопкой мыши по новому сертификату Агента -> Все задачи -> Управление закрытыми ключами.
  2. Добавьте учетную запись, под которой работает пул IIS для SCEP (ваша сервисная учетка или IIS_IUSRS), и дайте ей права на Чтение (Read).
  3. Повторите то же самое для нового сертификата Шифрования CEP.

После всех вышеописанных действий необходимо перезапустить 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.


  • No labels