Сертификаты от корпоративного 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 не выпускает — они указывают на несколько узлов сразу.
Консоль делает это без ручной работы с ключами:
- Координатор формирует запрос (CSR) и хранит его закрытый ключ. Ключ нигде не показывается и не скачивается; при включённом шифровании хранимых данных он запечатан мастер-ключом, как остальные ключи, которые координатор держит за других.
- Вы подписываете запрос в корпоративном УЦ — кнопкой «Отправить в certsrv» прямо из
своего браузера (рекомендуется: координатору не нужен доступ к УЦ) или командой
certreq. - Вы приносите выпущенный сертификат (
.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. Запрос
- Назначение — например, «Площадки MCU». Имена и общее имя (CN) подставятся.
- Ключ — RSA 2048 (по умолчанию: его понимает любое оборудование переговорок), RSA 3072 или ECDSA P-256.
- Проверьте имена и поля субъекта, нажмите «Сформировать запрос».
Консоль покажет запрос (CSR) — его можно скопировать или скачать файлом .req — и
готовые инструкции с вашим шаблоном и именем файла.
Отправить в certsrv из браузера (рекомендуется)
Координатор обычн о не видит корпоративный УЦ — а ваш браузер видит и входит в веб-регистрацию (certsrv) под вашей учётной записью Windows. Поэтому запрос отправляет браузер, а не координатор:
- Нажмите «Отправить в certsrv» под запросом (или в строке ожидающего запроса в таблице
«3. Сертификаты и запросы»). Откроется новая вкладка: она сама отправит запрос в
<адрес веб-регистрации>/certfnsh.aspс шаблоном из настроек — так же, как это делает «расширенный запрос сертификата» certsrv. Если браузер спросит логин и пароль — это спрашивает УЦ, а не координатор. - «Сертификат выдан» (Certificate Issued): выберите Base 64 и нажмите «Загрузить цепочку
сертификатов». Перетащите скачанный
.p7bна карточку — консоль сразу его проверит (§4). Одного файла достаточно: в цепочке есть и сам сертификат. - «Запрос сертификата ожидает» (Certificate Pending): УЦ ждёт одобрения диспетчера
сертификатов. Запишите Request Id, который показал certsrv. После одобрения вернитесь
в этом же браузере на
<адрес>/certsrv→ «Просмотр состояния ожидающего запроса сертификата» (certsrv помнит запросы в cookie браузера) — или впишите Request Id в поле под запросом в консоли: появится прямая ссылка<адрес>/certnew.p7b?ReqID=<n>&Enc=b64на цепочку. - Отказ или ошибка про шаблон — проверьте имя шаблона, «Имя субъекта: предоставляется в запросе» и право «Заявка» (§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
Если кнопкой воспользоваться нельзя (например, адрес веб-регистрации не задан):
- Откройте
https://<УЦ>/certsrv→ Запросить сертификат → расширенный запрос сертификата. - Вставьте текст запроса целиком (от
-----BEGIN CERTIFICATE REQUEST-----до-----END…). - Шаблон сертификата — «Веб-сервер» (или ваш). Нажмите Выдать.
- Выберите Кодировка Base64 и Загрузить цепочку сертификатов — получится
.p7bс выпускающим УЦ и корнем. Подойдёт и Загрузить сертификат (.cer), если сертификаты УЦ уже есть в настройках.
4. Установка выпущенного сертификата
В разделе «2. Установка выпущенного сертификата»:
- Запрос — можно оставить «Любой ожидающий запрос»: сертификат найдёт свой запрос по ключу.
- Перетащите файл из certsrv на карточку (в рамку «Перетащите сюда файл…») — он сразу
проверяется, — или выберите файл (
.cer,.crt,.pem,.p7b), или вставьте сертификат текстом (base64 или PEM). - Если в файле нет цепочки и сертификаты УЦ ещё не сохранены — раскройте «Сертификаты УЦ, если их
нет в файле» и вставьте выпускающий УЦ и корень (на компьютере в домене:
certutil -ca.cert issuing.cer, корень — из «Доверенных корневых центров сертификации»). - Нажмите «Проверить». Консоль покажет: кто выпустил, срок, цепочку, каждое запрошенное имя (✓ или ✗) и для площадок MCU — по каждому узлу, чем будет покрыто каждое его имя.
- Если ошибок нет — «Установить». Хосты заберут сертификат при следующем опросе, примерно за минуту.
Что проверяется и почему сертификат может не встать:
| Сообщение | Что сделать |
|---|---|
| цепочка не строится до корня | добавьте выпускающий УЦ и корень или загрузите .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.address | ru.mcu.s2.itglobal.com |
reg.1.server.1.port | 0 — искать узлы по SRV |
reg.1.server.1.transport | TLS |
Корпоративный корень на аппаратах обычно уже есть (его раздаёт сервер провижининга). Если нет —
загрузите его в аппарат: веб-интерфейс → Settings → Network → TLS → Certificates (и ли
параметр device.sec.TLS.customCaCert1 с текстом корня в PEM) и выберите этот сертификат в
профиле TLS, который использует SIP. Проверку имени в сертификате на аппарате не выключайте: она
и есть то, ради чего сертификат выпускался.
Проверка: аппарат регистрируется по TLS, в журнале MCU на узле нет ошибок рукопожатия, а звонок в встречу проходит с любого из двух узлов.