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


52

Таким чином, випуск Windows Server 2012 видалив багато старих конфігураційних програм, пов'язаних з віддаленим робочим столом. Зокрема, немає більше утиліти конфігурації хоста віддаленого робочого столу для сеансу робочого столу, яка надала вам доступ до діалогового вікна властивостей RDP-Tcp, що дозволяє налаштувати спеціальний сертифікат для використання RDSH. На його місці приємний новий консолідований графічний інтерфейс, який є частиною загального робочого процесу "редагувати властивості розгортання" в новому менеджері сервера. Суть полягає в тому, що ви отримуєте доступ до цього робочого процесу лише тоді, коли у вас встановлена ​​роль віддалених служб робочого столу (наскільки я можу сказати).

Це здається трохи недоглядом з боку Microsoft. Як ми можемо налаштувати спеціальний сертифікат SSL для RDP на Windows Server 2012, коли він працює в режимі віддаленого адміністрування за замовчуванням без зайвої установки ролі служб віддаленого робочого столу?


Відповіді:


80

Виявляється, велика частина даних конфігурації для RDSH зберігається в Win32_TSGeneralSettingкласі в WMI в root\cimv2\TerminalServicesпросторі імен. На налаштований сертифікат для даного з'єднання посилається значення Thumbprint цього сертифіката у властивості, що називається SSLCertificateSHA1Hash.


ОНОВЛЕННЯ: Ось узагальнене рішення Powershell, яке захоплює і задає відбиток першого сердечного сердечка SSL в особистому магазині комп'ютера. Якщо у вашій системі є кілька сертів, вам слід додати -Filterпараметр до gciкоманди, щоб переконатися, що ви посилаєтеся на правильний cert. Я залишив свою первинну відповідь недоторканою нижче цієї для довідки.

# 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 і скопіюйте шістнадцяткову рядок з обмеженим пробілом у щось на зразок Блокнот
  3. Видаліть усі рядки з рядка. Ви також хочете поспостерігати за та видалити символ, який не є ascii, який іноді копіюється безпосередньо перед першим символом у рядку. Це не видно в Блокноті.
  4. Це значення, яке потрібно встановити в WMI. Це має виглядати приблизно так: 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4 .

Тепер, коли у вас є значення thumbprint, ось один вкладиш, який ви можете використовувати для встановлення значення за допомогою 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"}

Примітка: сертифікат повинен бути в магазині сертифікатів "Особистий" для облікового запису "Комп'ютер".


3
Просто хотів додати, що це врятувало мене від чистого розвалу. Дякую. Установка ролей та перезапуск серверів, як це пропонується в межах технології та ін., Є смішним. Навіть тоді, встановивши SSL cert в RD Gateway Manager, він не переноситься на віддалений вхід адміністратора.
Папа

2
Дуже дякую за це. Я, мабуть, шукав усіх у Google, перш ніж я це знайшов. Занадто багато результатів говорить про встановлення "Служб віддаленого робочого столу" через "Додати ролі та функції", але для цього потрібно приєднатися до домену.
Сеті

2
Якщо я спробую це зробити за допомогою вашого сценарію PS, я отримаю "Недійсний параметр". Те саме питання, якщо я це теж роблю вручну ...
deed02392

1
Я отримував недійсний аргумент, використовуючи всі методи, поки я не імпортував сертифікат, включаючи приватні ключі. Проста помилка.
toffitomek

2
Мені знову: D Я також отримую цю помилку "Недійсний параметр" в Powershell при запуску wmic. Щойно побачив замітку внизу. Переконайтеся, що церта також є в особистому магазині. Цього разу моя була у магазині веб-хостингу ...
Сетхі

4

Якщо ви отримуєте "Недійсний параметр" під час спроби рішення Райана, переконайтеся, що ви використовуєте підвищений командний рядок (запустіть як адміністратор).


Не можу повірити, що це не має ніяких результатів!
Адріан Годонг

0

Вам потрібен ваш domain.pfx відбиток пальця у файлі txt SSLCertificateSHA1Hash.txt.

Потім запустіть це в CMD:

pushd %~dp0
cls
::FreeSoftwareServers.com

certutil.exe -p "" -importpfx "%~dp0domain.pfx"
set /p FingerPrint=<"%~dp0SSLCertificateSHA1Hash.txt"
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="%FingerPrint%"
icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\*" /grant "NETWORK SERVICE":R
shutdown /r /t 5
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.