Добрый день уважаемые читатели!

Сегодня ко мне пришли с проблемой валидного сертификата для коллекции удаленных рабочих столов на macOS Ventura.

При подключении к коллекции через шлюз удаленных рабочих столов, приложением Microsoft Remote Desktop v 10.9.* теперь проверяется и FQDN имя брокера, может это было и раньше, точно не скажу, но о проблеме узнал только сейчас. В итоге, если не поставить галку доверять сертификату, подключится не получится.

Проблема в том, что описание брокера в rdp файле подключения, имеет локальное FQDN имя. При подключении, проверяется имя брокера с содержимым сертификата, и оказывается, что rdcb01.example.lan не имеет никакого отношения к записям в сертификате *.example.com. Данный параметр задает альтернативное имя брокера.

Смотрим блокнотом rdp файл параметр alternate full address, видим внутреннее имя rdcb01.example.lan, вот его нам и нужно поменять, на валидное имя для сертификата.

Изменения производятся в 2 этапа: добавить политику авторизации ресурсов в шлюз удаленных рабочих столов, и изменение RDP файла для подключения.

Итак, избавляемся от лишних телодвижений пользователей, и присваиваем альтернативное имя брокеру!

Имеем: (используйте свои значения)

  • example.com - внешнее имя домена

  • example.lan - локальное имя домена

  • rdgw.examle.com - внешнее имя;

  • rdcb01.examle.lan - внутреннее имя брокера,

  • 10.1.1.99 - ip брокера,

  • Wildcard сертификат *.example.com,

  • rdcb-users - группа пользователей удаленного рабочего стола,

  • public-terminals - коллекция удаленных рабочих столов.

Первое что нам надо сделать, это придумать имя для брокера (если у вас брокер и шлюз удаленных рабочих столов на одном хосте, придумывать ничего не нужно, далее по тексту вместо rdcb.exampe.com используем rdgw.example.com), пусть это будет rdcb.example.com.

На шлюзе удаленных рабочих столов, в файл c:\windows\system32\drivers\etc\hosts добавляем строчку вида 10.1.1.99 rdcb.example.com (если у вас в локальной сети есть DNS сервер с внешней зоной example.com, можно добавить алиас rdcb.example.com для rdcb01.example.lan). Это нужно для того, чтобы шлюз удаленных рабочих столов знал куда отправить подключение по внешнему имени брокера.

Теперь нужно добавить правила авторизации ресурсов на шлюзе удаленных рабочих столов

Можно через оснастку, или через PowerShell.

Через оснастку:

Открываем диспетчер шлюза удаленных рабочих столов, выбираем сервер RDCB01, переходим в политики авторизации ресурсов, управление локальными группами компьютеров. Создаем новую группу, имя может быть любое, в моем примере это "GMCG-example.com", далее переходим на вкладку Сетевые ресурсы, добавляем rdcb.example.com.

После создании группы, необходимо создать политику авторизации ресурсов.

В Политике авторизации ресурсов, создаем новую политику, далее, как вам удобно, можно через мастер: задаем имя "RAP-ExternalName", добавляем группу пользователей "rdcb-users@example.lan", выбрать существующую управляемую шлюзом удаленных рабочих столов группу компьютеров, выбираем ранее созданную группу "GMCG-example.com", далее, согласно вашей инсталляции указываем порты и сохраняем)

PowerShell - script:

# подключаем модуль управления шлюзом
Import-Module RemoteDesktopServices

# создаем группу авторизации
CD RDS:\GatewayServer\GatewayManagedComputerGroups
New-Item -name GMCG-example.com -Computers 'rdcb.example.com' -Description 'external name rdcb.example.com'

# Создаем правило авторизации
CD RDS:\GatewayServer\RAP
New-Item -Name RAP-ExternalName -ComputerGroup 'GMCG-example.com' -ComputerGroupType 0 -UserGroups "rdcb-users@example.lan"

Выше мы сделали локальную группу компьютеров, добавили в нее внешнее имя брокера, создали политику авторизации ресурсов, в ней разрешили пользователям группы public-terminals подключатся к имени rdcb.example.com.

Теперь необходимо изменить параметр rdp файла коллекции, делается это также через PowerShell.

Сначала нужно проверить какие параметры прописаны в CustomRdpProperty, выполняем команду:

Get-RDSessionCollectionConfiguration -CollectionName "public-terminals" | fl CustomRdpProperty

Если вывод пустой, продолжаем, если нет, необходимо перечислить все параметры в строку ниже, разделитель между параметрами `n

Set-RDSessionCollectionConfiguration -CollectionName "public-terminals" -CustomRdpProperty 'alternate full address:s:rdcb.example.com'

(пример с несколькими параметрами в случае необходимости)

Set-RDSessionCollectionConfiguration -CollectionName "public-terminals" -CustomRdpProperty "alternate full address:s:rdcb.example.com`nsession bpp:i:16"

Проверяем!

Заходим через браузер https://rdgw.example.com/rdweb, авторизуемся под учетной записью входящую в группу rdcb-users, скачиваем rdp файл public-terminals.rdp, проверяем блокнотом параметр alternate full address оно должно иметь значение alternate full address:s:rdcb.example.com

Пробуем подключится, если все сделали правильно, ошибок сертификата больше быть не должно.

Данный пример можно использовать и на HA-connection broker, в этом случае нужно создавать DNS алиас для общего имени брокера. Также можно использовать и на кластере шлюза удаленных рабочих столов.

Комментарии (1)


  1. Johan_Palych
    23.09.2023 08:38

    Что собой представляет коллекция удаленных рабочих столов на macOS Ventura (xRDP Server, NuoRDS Server for Mac, Royal TSX Server)?
    В macOS out of the box ssh-server(X11Forwarding) и vnc-server.