Uzaktan Yönetim modunda Windows Server 2012'de RDP için özel SSL sertifikası yapılandırılsın mı?


52

Bu nedenle, Windows Server 2012'nin sürümü, eski Uzak Masaüstü ile ilgili yapılandırma yardımcı programlarının çoğunu kaldırmıştır. Özellikle, RDSH'nin kullanması için özel bir sertifika yapılandırabilmenizi sağlayan RDP-Tcp özellikleri iletişim kutusuna erişiminizi sağlayan başka Uzak Masaüstü Oturum Ana Bilgisayarı Yapılandırma yardımcı programı yoktur . Onun yerine, yeni Sunucu Yöneticisi'ndeki genel "dağıtım özelliklerini düzenle" iş akışının bir parçası olan hoş bir yeni birleştirilmiş GUI var. İşin püf noktası, o iş akışına yalnızca Remote Desktop Services rolü yüklüyse erişebilmemdir (söyleyebileceğim kadarıyla).

Bu, Microsoft’un bir nezaketine benziyor. Varsayılan Uzak Yönetim modunda çalışırken, Uzak Masaüstü Hizmetleri rolünü gereksiz yere yüklemeden Windows Server 2012'de RDP için özel bir SSL sertifikasını nasıl yapılandırabiliriz?


Yanıtlar:


80

RDSH için yapılandırma verilerinin çoğunun ad alanındaki WMI'daki Win32_TSGeneralSettingsınıfta depolandığı ortaya çıkar root\cimv2\TerminalServices. Belirli bir bağlantı için yapılandırılmış sertifika, adı verilen bir özellikteki o sertifikanın Parmak İzi değeri ile belirtilir SSLCertificateSHA1Hash.


GÜNCELLEME: İşte bilgisayarın kişisel mağazasında ilk SSL sertifikasının parmak izini alan ve ayarlayan genel bir Powershell çözümü. Sisteminizde birden fazla cer varsa, doğru sertifikaya başvurduğunuzdan emin olmak -Filteriçin gcikomuta bir seçenek eklemelisiniz . Orjinal cevabımı referans için bunun altında sağlam bıraktım.

# 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"}

Parmak izi değerini almak için

  1. Sertifikanızın özellikler iletişim kutusunu açıp Ayrıntılar sekmesini seçin.
  2. Parmak İzi alanına aşağı kaydırın ve boşlukla ayrılmış altıgen dizgiyi Not Defteri gibi bir şeye kopyalayın
  3. Dizeden tüm boşlukları kaldırın. Ayrıca, bazen dizedeki ilk karakterden hemen önce kopyalanan ascii olmayan bir karaktere dikkat etmek ve bunları kaldırmak isteyeceksiniz. Not Defteri'nde görünmüyor.
  4. WMI'da ayarlamanız gereken değer budur. Bunun gibi bir şey olmalı: 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4 .

Şimdi parmak izi değerine sahip olduğunuza göre, wmic kullanarak değeri ayarlamak için kullanabileceğiniz bir tek gömlek:

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

Veya PowerShell sizin işiniz ise, bunun yerine bunu kullanabilirsiniz:

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

Not: Sertifika Bilgisayar hesabı için 'Kişisel' Sertifika Mağazasında olmalıdır.


3
Sadece beni saf erimeden kurtardığını eklemek istedim. Teşekkür ederim. Rollerin kurulması ve sunucuların teknet ve benzerlerinde önerildiği şekilde yeniden başlatılması çok saçma. O zaman bile, SSL geçidini RD Ağ Geçidi Yöneticisi'ne yükledikten sonra, uzaktan yönetici oturum açma işlemine aktarmaz.
Papa

2
Bunun için çok teşekkürler. Bunu bulmadan önce tüm google'ı aramış olmalıyım . "Uzak Masaüstü Hizmetleri" ni "Rol ve özellik ekle" yoluyla yüklememi söyleyen çok fazla sonuç var, ancak bunun için bir etki alanına katılmanız gerekiyor.
Sethi

2
PS betiğinizi kullanarak yapmaya çalışırsam "Geçersiz Parametre" alıyorum. Aynı konu elle de
yaparsam

1
Özel anahtarlar da dahil olmak üzere sertifikayı yeniden alana kadar tüm yöntemleri kullanarak Geçersiz bir tartışma alıyordum . Basit bir hata.
toffitomek

2
Yine ben: D Powershell'de bu "Geçersiz parametre" hatasını da çalıştırırken alıyorum wmic. Az önce notu gördüm. Sertifikanın da Kişisel mağazada olduğundan emin olun. Mine bu sefer Web Hosting mağazasındaydı ...
Sethi,

4

Ryan'ın çözümünü denediğinizde "Geçersiz Parametre" alıyorsanız, yükseltilmiş komut istemini kullandığınızdan emin olun (yönetici olarak çalıştırın).


Bunun hiçbir önemi olmadığı inanamıyorum!
Adrian Godong,

0

domain.pfx Bir txt dosyasında parmak izine ihtiyacın var SSLCertificateSHA1Hash.txt.

Sonra bunu CMD'de çalıştırın:

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.