Налаштувати спеціальний сертифікат 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.