Перейти к основному содержимому

Сертификаты от корпоративного PKI (Microsoft AD CS)

Актуально для: SimpleTwo 0.9.361 · Проверено: 19.10.2026

Если аппараты и компьютеры компании уже доверяют корневому сертификату корпоративного центра сертификации (УЦ) на Microsoft AD CS, сертификат для SimpleTwo проще выпустить там, чем у Let's Encrypt. Так делают прежде всего для оборудования переговорок (Poly, Cisco): у них обычно уже установлен корпоративный корень, а имена площадок MCU (*.ru.mcu.example.com) Let's Encrypt по HTTP-01 не выпускает — они указывают на несколько узлов сразу.

Консоль делает это без ручной работы с ключами:

  1. Координатор формирует запрос (CSR) и хранит его закрытый ключ. Ключ нигде не показывается и не скачивается; при включённом шифровании хранимых данных он запечатан мастер-ключом, как остальные ключи, которые координатор держит за других.
  2. Вы подписываете запрос в корпоративном УЦ — кнопкой «Отправить в certsrv» прямо из своего браузера (рекомендуется: координатору не нужен доступ к УЦ) или командой certreq.
  3. Вы приносите выпущенный сертификат (.cer или .p7b), координатор сам находит запрос по ключу, достраивает и проверяет цепочку, показывает, что сертификат покроет, и устанавливает его.

Всё это — Настройки → Сертификат от корпоративного PKI (Microsoft AD CS). С карточки Телефония → SIP SRV-записи → Сертификат для площадок MCU туда ведёт кнопка «Запросить у корпоративного PKI…».

1. Для чего можно запросить сертификат​

НазначениеИмена по умолчаниюКуда встанет сертификат
Площадки MCUдомен MCU, *.<домен MCU>, *.<площадка>.<домен MCU> каждой площадки, имя каждого узла <узел>.<площадка>.<домен MCU>сертификат площадок MCU — его получают все узлы MCU (Переговорки, раздел 5)
Хост роли — TURN, SFU, узел MCU по публичному имени, шлюз ТфОП, MX, мониторингпубличное имя хостасертификат этого хоста; Let's Encrypt для него больше не заказывается
Координатор (консоль и приложения)домен из Настроек → TLS и домены арендаторовсертификат самой консоли — как ручной импорт в Настройках → TLS

Имена можно поправить: добавить, убрать, заменить. Звёздочка допустима только в первой метке (*.ru.mcu.example.com).

Кто должен доверять корню

Сертификат от корпоративного УЦ принимают только устройства, на которых есть корпоративный корень. Для площадок MCU и внутренних хостов это нормально. Координатор открывают и личные телефоны сотрудников — с корпоративным сертификатом приложения на них не подключатся, если корень на них не установлен.

Роли, которые получают сертификат сами (чаты, каталог, почта, диск, ID), в списке не предлагаются: у них нет пути импорта сертификата.

2. Настройки (один раз)​

Внизу карточки, раздел «Настройки»:

  • Шаблон сертификата — внутреннее имя шаблона, не отображаемое. У стандартного шаблона «Веб-сервер» это WebServer (значение по умолчанию). Если в компании свой шаблон для серверов — впишите его имя.
  • УЦ для certreq (-config) — <хост УЦ>\<имя УЦ>, например ca01.corp.local\Corp Issuing CA. Необязательно: без него certreq спросит УЦ в окне выбора.
  • Адрес веб-регистрации — https://<хост УЦ>/certsrv, например https://ca01.corp.local/certsrv. По нему кнопка «Отправить в certsrv» отправляет запрос из вашего браузера. Можно вставить и адрес страницы из браузера (…/certsrv/certrqxt.asp) или только имя хоста — консоль приведёт его к виду https://<хост>/certsrv. Адрес http:// принимается, но консоль предупреждает: по нему учётные данные Windows и запрос идут по сети незащищёнными.
  • Напомнить за дней до истечения — по умолчанию 30.
  • Сертификаты корпоративного УЦ — выпускающий УЦ и корень. Заполнять вручную не обязательно: они запоминаются сами из первого же .p7b с цепочкой.

Организация, подразделение, страна, город и регион (O, OU, C, L, ST) запоминаются из последнего запроса.

Каким должен быть шаблон​

  • тип «Веб-сервер»: в расширенном использовании ключа есть «Проверка подлинности сервера»;
  • Имя субъекта: предоставляется в запросе — иначе УЦ возьмёт имя из AD и выбросит имена из запроса (SAN), и сертификат не подойдёт. У стандартного «Веб-сервера» так и есть;
  • у вашей учётной записи (или группы) на вкладке Безопасность шаблона есть право «Заявка» (Enroll);
  • шаблон опубликован на выпускающем УЦ (Шаблоны сертификатов → Создать → Выдаваемый шаблон сертификата).

На автономном (не интегрированном с AD) УЦ шаблонов нет; чтобы он принимал SAN из запроса, администратор УЦ включает certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2.

3. Запрос​

  1. Назначение — например, «Площадки MCU». Имена и общее имя (CN) подставятся.
  2. Ключ — RSA 2048 (по умолчанию: его понимает любое оборудование переговорок), RSA 3072 или ECDSA P-256.
  3. Проверьте имена и поля субъекта, нажмите «Сформировать запрос».

Консоль покажет запрос (CSR) — его можно скопировать или скачать файлом .req — и готовые инструкции с вашим шаблоном и именем файла.

Отправить в certsrv из браузера (рекомендуется)​

Координатор обычно не видит корпоративный УЦ — а ваш браузер видит и входит в веб-регистрацию (certsrv) под вашей учётной записью Windows. Поэтому запрос отправляет браузер, а не координатор:

  1. Нажмите «Отправить в certsrv» под запросом (или в строке ожидающего запроса в таблице «3. Сертификаты и запросы»). Откроется новая вкладка: она сама отправит запрос в <адрес веб-регистрации>/certfnsh.asp с шаблоном из настроек — так же, как это делает «расширенный запрос сертификата» certsrv. Если браузер спросит логин и пароль — это спрашивает УЦ, а не координатор.
  2. «Сертификат выдан» (Certificate Issued): выберите Base 64 и нажмите «Загрузить цепочку сертификатов». Перетащите скачанный .p7b на карточку — консоль сразу его проверит (§4). Одного файла достаточно: в цепочке есть и сам сертификат.
  3. «Запрос сертификата ожидает» (Certificate Pending): УЦ ждёт одобрения диспетчера сертификатов. Запишите Request Id, который показал certsrv. После одобрения вернитесь в этом же браузере на <адрес>/certsrv → «Просмотр состояния ожидающего запроса сертификата» (certsrv помнит запросы в cookie браузера) — или впишите Request Id в поле под запросом в консоли: появится прямая ссылка <адрес>/certnew.p7b?ReqID=<n>&Enc=b64 на цепочку.
  4. Отказ или ошибка про шаблон — проверьте имя шаблона, «Имя субъекта: предоставляется в запросе» и право «Заявка» (§2).

Закрытый ключ при этом никуда не уходит: в УЦ отправляется только CSR, а он не секретен. Сам запрос и шаблон передаются новой вкладке в «якоре» адреса (#…) — браузер его никуда не отправляет, ни координатору, ни в заголовке Referer.

Почему файл приходится перетаскивать

Забрать сертификат автоматически консоль не может: certsrv не отдаёт заголовков CORS, поэтому ответ УЦ видит только вкладка, которая его спросила, а консоль (другой адрес) прочитать его не вправе. Координатор же до УЦ обычно не достаёт. Поэтому последний шаг — один файл, перетащенный на карточку.

Или командой certreq​

На компьютере в домене, с которого доступен УЦ:

certreq -submit -attrib "CertificateTemplate:WebServer" mcu-sites-1a2b3c.req mcu-sites-1a2b3c.cer

С указанием УЦ (если он задан в настройках, консоль подставит его сама):

certreq -submit -config "ca01.corp.local\Corp Issuing CA" -attrib "CertificateTemplate:WebServer" mcu-sites-1a2b3c.req mcu-sites-1a2b3c.cer

Если УЦ оставляет запрос на одобрение диспетчером сертификатов, certreq выведет RequestId. После одобрения:

certreq -retrieve -config "ca01.corp.local\Corp Issuing CA" 1234 mcu-sites-1a2b3c.cer

certreq -accept выполнять не нужно: ключ запроса не на этом компьютере, а в координаторе.

Или вручную в certsrv​

Если кнопкой воспользоваться нельзя (например, адрес веб-регистрации не задан):

  1. Откройте https://<УЦ>/certsrv → Запросить сертификат → расширенный запрос сертификата.
  2. Вставьте текст запроса целиком (от -----BEGIN CERTIFICATE REQUEST----- до -----END…).
  3. Шаблон сертификата — «Веб-сервер» (или ваш). Нажмите Выдать.
  4. Выберите Кодировка Base64 и Загрузить цепочку сертификатов — получится .p7b с выпускающим УЦ и корнем. Подойдёт и Загрузить сертификат (.cer), если сертификаты УЦ уже есть в настройках.

4. Установка выпущенного сертификата​

В разделе «2. Установка выпущенного сертификата»:

  1. Запрос — можно оставить «Любой ожидающий запрос»: сертификат найдёт свой запрос по ключу.
  2. Перетащите файл из certsrv на карточку (в рамку «Перетащите сюда файл…») — он сразу проверяется, — или выберите файл (.cer, .crt, .pem, .p7b), или вставьте сертификат текстом (base64 или PEM).
  3. Если в файле нет цепочки и сертификаты УЦ ещё не сохранены — раскройте «Сертификаты УЦ, если их нет в файле» и вставьте выпускающий УЦ и корень (на компьютере в домене: certutil -ca.cert issuing.cer, корень — из «Доверенных корневых центров сертификации»).
  4. Нажмите «Проверить». Консоль покажет: кто выпустил, срок, цепочку, каждое запрошенное имя (✓ или ✗) и для площадок MCU — по каждому узлу, чем будет покрыто каждое его имя.
  5. Если ошибок нет — «Установить». Хосты заберут сертификат при следующем опросе, примерно за минуту.

Что проверяется и почему сертификат может не встать:

СообщениеЧто сделать
цепочка не строится до корнядобавьте выпускающий УЦ и корень или загрузите .p7b вместо .cer
сертификат не называет … / нет альтернативных имёншаблон не берёт имена из запроса — «Имя субъекта: предоставляется в запросе» (§2)
нет «Проверки подлинности сервера»выпустите по шаблону типа «Веб-сервер»
нет ни Digital Signature, ни Key Enciphermentто же: шаблон не для TLS-сервера
сертификат выпущен не для ключа этого запросаэто сертификат другого запроса (или старый); выберите правильный запрос или файл

Сертификаты УЦ из цепочки запоминаются: следующий сертификат можно принести одним .cer.

5. Срок и продление​

Таблица «3. Сертификаты и запросы» показывает назначение, имена, состояние, кто выпустил и до какого числа действует.

  • За N дней до истечения (настройка, по умолчанию 30) на главной странице консоли появляется предупреждение, после истечения — ошибка. Напоминание приходит только про сертификат, который ещё используется: если поверх импортировали другой, строка помечается «установлен, но уже не используется».
  • «Обновить» формирует новый запрос с теми же именами и новым ключом. Подпишите его так же; текущий сертификат работает, пока не установлен новый, — тогда старый помечается «заменён более новым».
  • «Отмена» у ожидающего запроса удаляет его ключ: выпущенный по нему сертификат установить уже не получится.

Отзыв в AD CS консоль не выполняет — его делает администратор УЦ.

6. Пример: сертификат площадок MCU для s2 и аппараты Poly​

Установка s2: домен MCU mcu.s2.itglobal.com, одна площадка ru с узлами mcu1 и mcu2.

1. Запрос. Назначение «Площадки MCU». Консоль подставит:

mcu.s2.itglobal.com
*.mcu.s2.itglobal.com
*.ru.mcu.s2.itglobal.com
mcu1.ru.mcu.s2.itglobal.com
mcu2.ru.mcu.s2.itglobal.com
  • mcu.s2.itglobal.com — общий SRV-домен (для аппарата без площадки);
  • *.mcu.s2.itglobal.com — покрывает домен площадки ru.mcu.s2.itglobal.com (и будущих площадок);
  • *.ru.mcu.s2.itglobal.com и имена узлов — цели SRV-записей; имена узлов перечислены явно, потому что не каждый аппарат сопоставляет звёздочку с целью SRV.

CN — mcu.s2.itglobal.com, ключ — RSA 2048, шаблон — WebServer (или серверный шаблон компании). «Сформировать запрос».

2. Подпись. «Отправить в certsrv» → в новой вкладке «Сертификат выдан» → Base 64 → «Загрузить цепочку сертификатов» → перетащить certnew.p7b на карточку.

Или «Скачать .req» и на компьютере в домене:

certreq -submit -config "<хост УЦ>\<имя УЦ>" -attrib "CertificateTemplate:WebServer" mcu-sites-xxxxxx.req mcu-sites-xxxxxx.cer

или certsrv → расширенный запрос → «Веб-сервер» → Base64 → Загрузить цепочку сертификатов.

3. Установка. Перетащенный файл проверяется сразу (или выберите файл и нажмите «Проверить»): все пять имён — ✓, у mcu1 и mcu2 имена ru.mcu.s2.itglobal.com, mcu.s2.itglobal.com и mcuN.ru.mcu.s2.itglobal.com — «этот сертификат». «Установить». Через минуту на карточке SIP SRV-записи у обоих узлов домен площадки покрыт «сертификатом MCU».

Публичные имена узлов (mcu1.s2.itglobal.com, mcu2.s2.itglobal.com) в этот сертификат не входят и по-прежнему обслуживаются сертификатом Let's Encrypt узла: узел выбирает сертификат по имени, которое спросил аппарат.

4. Аппараты Poly. Настройка линии — как в Переговорках, раздел 9:

ПараметрЗначение
reg.1.server.1.addressru.mcu.s2.itglobal.com
reg.1.server.1.port0 — искать узлы по SRV
reg.1.server.1.transportTLS

Корпоративный корень на аппаратах обычно уже есть (его раздаёт сервер провижининга). Если нет — загрузите его в аппарат: веб-интерфейс → Settings → Network → TLS → Certificates (или параметр device.sec.TLS.customCaCert1 с текстом корня в PEM) и выберите этот сертификат в профиле TLS, который использует SIP. Проверку имени в сертификате на аппарате не выключайте: она и есть то, ради чего сертификат выпускался.

Проверка: аппарат регистрируется по TLS, в журнале MCU на узле нет ошибок рукопожатия, а звонок в встречу проходит с любого из двух узлов.