Назад | Перейти на главную страницу

Как установить SSL-сертификат для RDS на Windows Server 2016?

Я установил Windows Server 2016 для небольшой компании, поэтому мне не нужен контроллер домена в этой установке, а для RDS мне нужны только роли RD Licensing и RD Session Host. Но только с этими ролями нет шлюза удаленного рабочего стола, который используется во многих руководствах для установки сертификата SSL на терминальный сервер (например, здесь: https://ryanmangansitblog.com/2013/03/27/deploying-remote-desktop-gateway-rds-2012/).

Итак, в заключение, у меня просто нет интерфейса шлюза удаленного рабочего стола для установки сертификата SSL.

Есть ли способ решить эту проблему и установить сертификат SSL на мой RDS?

Наконец-то я нашел решение!

  1. Прежде всего, нужно было изменить имя сервера, добавив DNS-суффикс. Например, если вы хотите подключиться к серверу по адресу srv.example.com, имя вашего сервера должно быть «srv», а DNS-суффикс «example.com». Это можно сделать в свойствах компьютера.
  2. Затем настройте лицензирование в «Диспетчере лицензирования удаленных рабочих столов».
  3. Теперь выдайте сертификат на доменное имя srv.example.com (т.е. в Let's encrypt)
  4. Конвертировать файлы сертификатов в windows one с помощью: openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem (Команда Linux) если вы выдали сертификат с помощью acme.sh, ваша команда должна выглядеть так: openssl pkcs12 -export -out certificate.pfx -inkey yourdomain.com.key -in yourdomain.com.cer -certfile fullchain.cer
  5. Установить преобразованный сертификат в личный хранить на компьютерном уровне. Не на уровне пользователя
  6. Затем с помощью этой команды отобразите отпечаток сертификата, скопируйте его в текстовый файл или что-то подобное: Get-ChildItem "Cert:\LocalMachine\My"
  7. Это переменная для установки пути WMI к прослушивателю RDP узла сеанса удаленных рабочих столов (где необходимо изменить сертификат): $PATH = (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices)
  8. Наконец, это команда для изменения активного сертификата на приемнике RDP: Set-WmiInstance -Path $PATH -argument @{SSLCertificateSHA1Hash="thumbprint"} Вышеупомянутый «отпечаток пальца» - это значение, которое вы отметили ранее, просто вставьте его между «.
  9. Отлично сработано! Теперь у вас есть сервер RDP с настраиваемым сертификатом SSL без установки шлюза удаленных рабочих столов. Кредиты

Запустите certlm.msc и импортируйте сертификат в хранилище «Личные -> Сертификаты». После его установки запустите диспетчер серверов и выберите слева значок роли удаленного рабочего стола. щелкните раскрывающийся список «Задачи» в разделе «Обзор развертывания», затем щелкните «Изменить свойства развертывания» в появившемся контекстном меню. Вы сможете назначить импортированный сертификат ролям, нажав кнопку «Выбрать существующий сертификат».

Вам все равно следует настроить параметры сертификата независимо от того, установлена ​​ли у вас роль шлюза.

Частичное решение с помощью сообщества MS я нашел там: https://www.risual.com/2014/03/10/setting-up-a-2012-r2-rds-gateway-for-a-workgroup/. Резюме к этой статье: чтобы сервер лицензий выдавал сертификаты только на Интернет-адрес, такой как srv.example.com, а не только "пример" (имя компьютера), необходимо добавить DNS-суффикс в свойствах компьютера:

Кстати, проблема все еще существует в том, что сервер для подключений RDP по-прежнему использует самовыданный сертификат (даже если я удаляю его и оставляю только сертификат let'sencrypt). При каждом перезапуске служб RD он выдает новый вместо моего. Как я могу использовать его для шифрования сертификата?

Конечно, я знаю, что могу экспортировать открытый ключ для самогенерируемого сертификата и добавить его на компьютеры сотрудников, но, на мой взгляд, это не лучшее решение.