В данной статье описана быстрая настройка Microsoft PKI с помощью AxelNAC.
Для иллюстрации интеграции AxelNAC с Microsoft PKI приняты следующие допущения:
В данной секции рассматривается настройка служб сертификации Active Directory Certificate Services в Microsoft Windows Server 2016. Установка ADCS не описывается (информация об этом приведена в официальной документации Microsoft).
Для интеграции с AxelNAC в ADCS должны быть установлены следующие подпрограммы:
Перед настройкой может понадобиться установить исправление, связанное с проблемой Microsoft. После перезапуска службы ADCS сервер не сможет зарегистрировать новые сертификаты и будет выдавать следующее сообщение об ошибке: RPC Server is unavailable. Исправление доступно по ссылке.
Связь между MSPKI и AxelNAC будет осуществляться через порт 80.
Для развертывания ADCS необходимо настроить службу Network Device Enrollment Service (NDES). Эта позволит обмениваться сертификатами с сервером MSPKI по протоколу Simple Certificate Exchange Protocol (SCEP).
Каждое изменение конфигурации должно выполняться учетной записью с правами администратора.
Microsoft SCEP (MSCEP) по умолчанию включает в себя пароль вызова, который является уникальным и динамически генерируется для каждого устройства, желающего зарегистрироваться. В условиях BYOD это может стать препятствием, поскольку пользователь не может зарегистрировать устройство самостоятельно без вмешательства администратора. Поскольку NDES используется вместе с AxelNAC, то для получения сертификата потребуются учетные данные, необходимые для доступа к системе регистрации.
Для отключения пароля вызова необходимо изменить ключ в реестре Windows. Для этого выполните следующие действия:
Шаг 1. Нажмите кнопку Start и введите regedit.
Шаг 2. Перейдите в раздел Computer → HKEY_LOCAL_MACHINE → SOFTWARE → Microsoft → Cryptography → MSCEP → EnforcePassword и поменяйте значение параметра EnforcePassword на 0 (значение по умолчанию 1).
Рекомендуется увеличивать длину URL, чтобы избежать проблем с длинными запросами. Для этого введите следующую команду в CLI на сервере NDES:
%systemroot%system32inetsrvappcmd.exe set config /section:system.webServer/
security/requestFiltering/requestLimits.maxQueryString:"16384"/commit:apphost
Недействительность вашего центра сертификации может повлиять на всю архитектуру сертификатов.
Предоставление сертификатов для аутентификации пользователей является важной целью, поэтому необходимо настроить специальный шаблон.
Во-первых, шаблон сертификата должен содержать как минимум следующие параметры Enhanced Key Usage и Key Usage:

Следующий этап — дублирование шаблона, в котором уже настроены параметры Key Usage и Enhanced Key Usage. Рекомендуется продублировать шаблон User и изменить настройки.
Для этого, выполните следующие действия:
Шаг 1. Продублируйте шаблон. Перейдите в Server Manager → Roles → Active Directory Certificates Services → Certificate templates, щелкните правой кнопкой мыши на шаблоне User и выберите Duplicate this template.
Шаг 2. Кликните правой кнопкой мыши на новом шаблоне и перейдите в раздел Properties. На вкладке Subject Name убедитесь, что в запросе выбрано значение Supplied, а не Built from information in Active Directory, иначе NDES перезапишет запрошенный CN.
Шаг 3. Разрешите NDES использовать этот шаблон. Перейдите в раздел Server Manager → Roles → Active Directory Certificates Services и разверните параметр <ServerDNSName>.
Шаг 4. Кликните правой кнопкой мыши на шаблоне сертификата и выберите New template to issue, затем выберите в списке только что созданный шаблон.
Шаг 5. Настройте в реестре выбранный шаблон. Для доступа к редактору реестра нажмите кнопку Start и введите regedit.
Шаг 6. В реестре перейдите в раздел Computer → HKEY_LOCAL_MACHINE → SOFTWARE → Microsoft → Cryptography → MSCEP. Должен появиться список из трех ключевых записей:
Шаг 7. Замените каждое значение именем вновь созданного шаблона.
Шаг 8. Перезагрузите NDES-сервер, чтобы применить изменения в реестре.
Использование SCEP с AxelNAC также требует внесения изменений в конфигурацию IIS:
Шаг 1. Перейдите в раздел Server Manager → Web(IIS).
Шаг 2. Раскройте элемент Default web site и выберите CertSrv → mscep.
Шаг 3. Выберите Authentication и дважды кликните на значении Anonymous Authentication.
Шаг 4. Убедитесь, что выбран идентификатор пула приложений.
Для настройки OCSP необходимо внести следующие изменения:
Шаг 1. Разрешите серверу использовать шаблон OCSPResponseSigning сервером. Перейдите в раздел Server Manager → Roles → Active Directory Certificates Services, раскройте параметр <ServerDNSName>, кликните правой кнопкой мыши на Certificate template и выберите New template to issue. Затем, в списке выберите OCSPResponseSigning.
Шаг 2. После установки OCSP создайте конфигурацию отзыва. Перейдите в раздел Server Manager → Roles → Active Directory Certificate Services, раскройте параметр OnlineResponder: <ServerDNSName>, кликните правой кнопкой мыши на Revocation Configuration и выберите Add Revocation Configuration. Затем нажмите Next.
Шаг 3. Выберите имя конфигурации и нажмите Next.
Шаг 4. Выберите значение Select a certificate for an existing enterprise CA и нажмите Next.
Шаг 5. Нажмите кнопку Browse. Найдите в списке корпоративный центр сертификации, выберите его, нажмите OK и затем Next.
Шаг 6. Укажите автоматический выбор сертификата подписи: Automatically select a signing certificate. Убедитесь, что выбрана опция автоматической регистрации Auto-Enroll for an OCSP signing certificate.
Шаг 7. В раскрывающемся списке рядом с Certificate Template выберите шаблон OCSP по умолчанию OCSPResponseSigning. Добавлять провайдеров нужно только в том случае, если помимо OCSP нужно использовать CRL.
Шаг 8. После создания конфигурации, кликните правой кнопкой мыши на конфигурации отзыва и выберите Edit properties.
Шаг 9. Перейдите на вкладку Signing и выберите Enable NONCE extension support, затем нажмите OK.
Шаг 10. Убедитесь, что OCSP-сервер появился в настройках центра сертификации. Кликните правой кнопкой мыши на центре сертификации и выберите Properties. Перейдите на вкладку Extension и в раскрывающемся списке Select extension выберите значение Authority Information Access (AIA).
Шаг 11. Убедитесь, что в списке расположений есть следующее значение:
http://<DNS-имя_СЕРВЕРА>/OCSP.
Если этого адреса нет, добавьте его с помощью кнопки Add.... В открывшемся меню введите http://, затем вставьте <DNS-имя_СЕРВЕРА> и введите /OCSP, затем нажмите OK.
Шаг 12. Убедитесь, что выбрано расширение Include in the online certificate status protocol(OCSP). По умолчанию OCSP имеет двухдневную задержку обновления информации в CRL. Это означает, что AxelNAC обнаружит отзыв сертификата только через два дня.
Шаг 13. Задержку можно изменить на сервере NDES. Для этого перейдите в раздел Server Manager → Roles → Active Directory Certificate Service, кликните правой кнопкой мыши на Enterprise PKI и выберите Options....
Шаг 14. Поменяйте значение параметра Set CRL status to Expiring when expiring in: на нужное значение задержки.
Использование Microsoft PKI предполагает, что все сертификаты будут поставляться корневым центром сертификации MSPKI. Для аутентификации RADIUS потребуется сгенерировать сертификат для AxelNAC. Для генерации сертификата RADIUS будет использоваться шаблон WebServer. Выполните следующие действия:
Шаг 1. Создайте запрос (CSR) закрытого ключа с сервера AxelNAC и отправьте CSR на сервер NDES. Подключитесь к контроллеру через SSH и введите в CLI следующие команды для создания CSR и подписания его закрытым ключом:
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
Будет предложено ввести информацию. Пример правильной конфигурации:
Все поля, кроме CN, не обязательны для заполнения.
Шаг 2. После получения CSR отправьте его на сервер NDES. Скопируйте содержимое запроса (CSR) на сайте регистрации МСПКИ для ввода запроса. URL для ввода запроса: http://<DNS-имя_СЕРВЕРА>/CertSrv/.
Шаг 3. На открывшейся странице нажмите Request a certificate и выберите значение advanced certificate request.
Шаг 4. Вставьте содержимое CSR-файла и выберите шаблон Web Server, после чего нажмите Submit.
Шаг 5. В качестве метода шифрования выберите Base 64 encoded и нажмите Download certificate. В результате пользователь получит сертификат (открытый ключ) для AxelNAC.
Шаг 6. Загрузите файл CA в браузере по следующему URL: http://<DNS-имя_СЕРВЕРА>/CertSrv. Нажмите кнопку для загрузки сертификата ЦС, цепочки сертификатов или CRL: Download a CA certificate, certificate chain or CRL.
Шаг 7. Выберите сертификат ЦС в списке.
Шаг 8. Выберите Base 64 в качестве метода шифрования и загрузите сертификат ЦС, нажав Download CA certificate.
Шаг 9. Скопируйте эти файлы в AxelNAC.
Перед выполнением следующих шагов убедитесь, что при выпуске сертификата был установлен параметр "аутентификация сервера" для EKU (Extended Key Usage).
Для того, чтобы сконфигурировать соединение с аутентификацией по протоколу EAP-TLS необходимо установить сертификаты на сервере AxelNAC. Поля, которые могут содержать сертификаты показаны в таблице ниже.
Обязательные и опциональные поля сертификатов
| Поле | Описание | Пример | Статус |
|---|---|---|---|
| UPN | User Principal Name пользователя | nb1@axeldemo.pro | Для выполнения аутентификации необходимо заполнить хотя бы одно из этих полей |
| CN | Common Name пользователя | nb1@axeldemo.pro | |
| DNS | DNS АРМ | nb1.axeldemo.pro | |
| IP Address | IP-адрес АРМ | 192.31.205.15 | Данные поля носят информационный характер и не требуют заполнения |
| Street Address | Географический адрес АРМ | ul. Lenina, 9A | |
| State or Province | Область/провинция/штат, для которого действителен сертификат | Mockovskaya oblast | |
| Country | Страна, для которой действителен сертификат | Honolulu | |
| Organizational Unit | Подразделение, для которого действителен сертификат | HR | |
| Organization | Организация, для которой действителен сертификат | AxelPRO |
Шаг 1. Перейдите на вкладку RADUIS в разделе Конфигурация → Настройки системы → SSL-сертификаты и нажмите на кнопку Редактировать.
Шаг 2. На открывшейся странице замените предустановленные данные в полях Сертификат сервера RADIUS, Закрытый ключ сервера RADIUS и Сертификат(ы) центра сертификации данными, полученными в ЦС и нажмите Сохранить в левом нижнем углу страницы.
После установки SSL-сертификата вам будет предложено перезапустить сервис radiusd-auth. Вы можете пропустить этот шаг, т.к. данный сервис, в любом случае, нужно будет перезапустить после окончательной настройки соединения.
Шаг 3. Перейдите в раздел Конфигурация → Настройки системы → RADUIS → SSL-сертификаты PKI и нажмите на кнопку Новый SSL-сертификат.
Шаг 4. На открывшейся странице заполните поля следующим образом:
После этого, нажмите Создать в левом нижнем углу страницы.
Шаг 5. Перейдите на вкладку Профили TLS и нажмите Новый TLS-профиль.
Шаг 6. На открывшейся странице заполните поля следующим образом:
Мы рекомендуем выбирать минимальную версию TLS 1.2 и максимальную — 1.3, т.к. эти версии являются самыми актуальными.
После этого, нажмите Создать в левом нижнем углу страницы.
Шаг 7. Перейдите на вкладку Профили EAP и нажмите Новый профиль EAP.
Шаг 8. На открывшейся странице заполните поля следующим образом:
После этого, нажмите Создать в левом нижнем углу страницы.
Шаг 9. Перезапустите сервис radiusd-auth.
Для использования PKI необходимо произвести конфигурацию провайдера в веб-интерфейсе AxelNAC. Конфигурация провайдера определяет, как AxelNAC подключается к MSPKI и какая информация будет передаваться. Для этого выполните следующие действия:
Шаг 1. Перейдите в раздел Конфигурация → Расширенные настройки доступа → PKI-провайдеры, нажмите Новый PKI-провайдер и в выпадающем списке выберите значение SCEP.
Шаг 2. Заполните форму для провайдера PKI в соответствии с конфигурацией центра сертификации.
Агенты инициализации позволяют устройствам автоматически настраивать подключение к соответствующему SSID (если применимо), использовать соответствующий метод аутентификации (например, EAP-TLS) и доверять сертификату ЦС и любому подписанному им сертификату. Подробный процесс настройки агентов инициализации описан в разделе Интеграция с агентами инициализации.
Для того, чтобы провести процедуру регистрации вручную, для отладочных целей, выполните следующие действия:
Шаг 1. Сгенерируйте запрос и его закрытый ключ с помощью команды openssl. Введите следующие команды в AxelNAC CLI:
mkdir temp; cd temp
openssl req -newkey rsa:2048 -nodes -keyout local.key -out local.csr -subj
'/C=CA/ST=Moscow/L=Mytishi/O=Reverse/OU=IT/CN=www.test.example.ru'
В результате в этом каталоге будут созданы два файла: local.csr и local.key.
Шаг 2. Получите сертификат ЦС и специфические сертификаты из MSPKI с помощью команды:
sscep getca -u http://<DNS-имя_СЕРВЕРА>/CertSrv/mscep/ -c MyCA.crt
Шаг 3. Используйте сертификаты CEP encryption и Enrollment agent. Оба сертификата были получены при выполнении команды sscep getca. Должно быть, как минимум, три сертификата с одинаковым именем и разными цифрами в конце: например, MyCA.crt-0 (сертификат агента регистрации), MyCA.crt-1 (сертификат шифрования CEP) и MyCA.crt-2 (сертификат ЦС). Для отображения содержимого каждого сертификата используйте следующие команды:
openssl x509 -in MyCA.crt-0 —text
openssl x509 -in MyCA.crt-1 —text
openssl x509 -in MyCA.crt-2 —text
Шаг 4. В результатах поиска найдите расширение X509v3.
Шаг 5. Используйте команду sscep enroll:
sscep enroll -c MyCA.crt-0 -e MyCA.crt-1 -k local.key -r local.csr
-l MyCert.crt -S sha1 -u http://<DNS-имя_СЕРВЕРА>/CertSrv/mscep/ -d
При использовании этой команды в качестве аргумента для -c потребуется сертификат агента Enrollment agent, а в качестве аргумента для -e — сертификат шифрования CEP Encryption. параметр -d используется для вывода отладочной информации. -l — локальный файл, в котором будет сохранен сертификат.
Шаг 6. Для проверки сертификата по OCSP можно использовать следующую команду openssl:
openssl OCSP -issuer path/CA-Certificate -cert path/Certificate-to-verify -text -url http://<DNS-имя_СЕРВЕРА>/OCSP
Если в Passthrough необходимо добавить домены, предлагается перехватить трафик, идущий с устройства, которое не может получить доступ к Google Play Store. Для этого можно использовать, например, команду tcpdump, получить IP-адрес устройства и выполнить в AxelNAC CLI следующую команду:
tcpdump -i $REGISTRATION_INTERFACE -n dst port 53 and src host @IP-АДРЕС_УСТРОЙСТВА
В результате все DNS-запросы с устройства будут передаваться в AxelNAC. Нужно будет найти связанный с Google домен и добавить его в список Passthrough.