Настройте пользовательский сертификат SSL для RDP на Windows Server 2012 (и позже) в режиме Remote Administration?

Один для наблюдения в будущем, DirectAccess в соответствии с Windows 2008 R2 вместе с Windows 7.

Красота этой системы состоит в том, что она установит соединение VPN без пользователя, имеющего необходимость даже быть зарегистрированным. Таким образом, как только ноутбук видит сетевое соединение, он попытается говорить с Вашим шлюзом Windows 2008 R2 DirectAccess и попытаться создать безопасное соединение. Это особенно удобно для удаленных admining/patching ноутбуков в поле и т.д. И, можно также осуществить Групповые политики этот путь, поскольку ноутбук уже говорит контроллерами домена, когда пользователь войдет в систему, они возьмут GP.

Пользователи не будут знать, что им установили соединение VPN; они не должны 'набирать' или 'разъединять' соединение VPN, они просто нажимают на ссылку на тот совместно используемый файл в том электронном письме, которое они просто получили, и файл откроется непосредственно от Вашего сетевого файлового сервера. Минимальная пользовательская поддержка требуется!

Определенно стоящий слежения позже в этом году.

53
задан 10 November 2019 в 22:19
3 ответа

Оказывается, большая часть данных конфигурации для RDSH хранится в классе Win32_TSGeneralSetting в WMI в пространстве имен root \ cimv2 \ TerminalServices . На настроенный сертификат для данного соединения ссылается значение отпечатка этого сертификата в свойстве с именем 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. Прокрутите вниз до поля «Отпечаток» и скопируйте шестнадцатеричную строку с разделителями пробелами в нечто вроде Блокнота
  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"}

Примечание: сертификат должен быть в «Личном»

81
ответ дан 28 November 2019 в 19:36

Вам нужен Ваш 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
0
ответ дан 28 November 2019 в 19:36

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

4
ответ дан 28 November 2019 в 19:36

Теги

Похожие вопросы