Вопрос: Настроить собственный сертификат SSL для RDP на Windows Server 2012 в режиме удаленного администрирования?


Таким образом, выпуск Windows Server 2012 удалил многие старые утилиты конфигурации, связанные с удаленным рабочим столом. В частности, больше нет Конфигурация узла сеансов удаленного рабочего стола которая предоставила вам доступ к диалоговому окну RDP-Tcp, который позволяет настраивать собственный сертификат для RDSH. На его месте есть новый новый консолидированный графический интерфейс, который является частью рабочего процесса редактирования свойств редактирования в новом диспетчере серверов. Уловка заключается в том, что вы получаете доступ только к этому рабочему процессу, если у вас установлена ​​роль служб удаленных рабочих столов (насколько я могу судить).

Это похоже на некоторый контроль со стороны Microsoft. Как мы можем настроить собственный сертификат SSL для RDP в Windows Server 2012, когда он работает в режиме удаленного администрирования по умолчанию, без необходимости устанавливать роль служб удаленных рабочих столов?


47
2017-11-01 07:15


Источник




Ответы:


Оказывается, что большая часть данных конфигурации для RDSH сохраняется в Win32_TSGeneralSetting класса в WMI в root\cimv2\TerminalServices Пространство имен. На настроенный сертификат для данного соединения ссылается значение Thumbprint этого сертификата на свойство, называемое SSLCertificateSHA1Hash,


ОБНОВИТЬ: Вот обобщенное решение Powershell, которое захватывает и устанавливает отпечаток первого сертификата SSL в личном магазине компьютера. Если ваша система имеет несколько сертификатов, вы должны добавить -Filter вариант для gci чтобы убедиться, что вы ссылаетесь на правильный сертификат. Я оставил свой оригинальный ответ неповрежденным ниже этого для справки.

# get a reference to the config instance
$tsgs = gwmi -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"

# grab the thumbprint of the first SSL cert in the computer store
$thumb = (gci -path cert:/LocalMachine/My | select -first 1).Thumbprint

# set the new thumbprint value
swmi -path $tsgs.__path -argument @{SSLCertificateSHA1Hash="$thumb"}

Чтобы получить значение отпечатка

  1. Откройте диалоговое окно свойств для своего сертификата и выберите вкладку «Сведения»
  2. Прокрутите вниз до поля Thumbprint и скопируйте шестнадцатеричную строку с разделителями пробела в нечто вроде Notepad
  3. Удалите все пробелы из строки. Вы также захотите следить за и удалить символ не-ascii, который иногда копируется непосредственно перед первым символом в строке. Это не видно в Блокноте.
  4. Это значение, которое необходимо установить в WMI. Он должен выглядеть примерно так: 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4,

Теперь, когда у вас есть значение отпечатка пальца, вот один лайнер, который вы можете использовать для установки значения с помощью wmic:

wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"

Или, если PowerShell - это ваша вещь, вы можете использовать это вместо этого:

$path = (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}

Заметка: сертификат должен находиться в хранилище сертификатов «Персональный» для учетной записи компьютера.


71
2017-11-01 07:15



Просто хотел добавить, что это спасло меня от чистого кризиса. Спасибо. Установка ролей и перезапуск серверов, как это предлагается в техне и т.п., смешно. Даже тогда, после установки SSL-сертификата в RD Gateway Manager, он не переносится на вход удаленного администратора. - Papa
Большое спасибо за это. Я, должно быть, искал все в google прежде чем я нашел это. Слишком много результатов говорит мне, что я устанавливаю «Службы удаленных рабочих столов» через «Добавить роли и функции», но для этого требуется, чтобы вы присоединились к домену. - Sethi
Если я попытаюсь сделать это, используя ваш PS-скрипт, я получаю «Invalid Parameter». Такая же проблема, если я делаю это вручную, тоже ... - deed02392
Я получал Недействительным аргумент используя все методы, пока я не повторно импортировал сертификат в том числе частные ключи. Простая ошибка. - toffitomek
Я снова: D Я получаю эту ошибку «Недопустимый параметр» в Powershell также при запуске wmic, Только что видел записку внизу. Убедитесь, что сертификат также находится в Личном магазине. На данный момент моя была в магазине веб-хостинга ... - Sethi


Если вы получаете «Invalid Parameter» при попытке решения Ryan, убедитесь, что вы используете повышенную командную строку (запускается как администратор).


2
2018-02-27 21:32



Не могу поверить, что у него нет поддержки! - Adrian Godong


Есть ли способ заставить сервер принудительно использовать действительный сертификат клиента? Кажется, что я могу выбрать из RDP-клиента игнорировать недействительные сертификаты. Я хочу, чтобы клиент не смог подключиться, если сертификат недействителен.


0
2018-04-25 03:14