Mengkonfigurasi sertifikat SSL khusus untuk RDP pada Windows Server 2012 dalam mode Administrasi Jarak Jauh?

52

Jadi rilis Windows Server 2012 telah menghapus banyak utilitas konfigurasi terkait Remote Desktop lama. Secara khusus, tidak ada lagi utilitas Konfigurasi Host Sesi Remote Desktop yang memberi Anda akses ke dialog properti RDP-Tcp yang memungkinkan Anda mengonfigurasi sertifikat khusus untuk digunakan RDSH. Sebagai gantinya adalah GUI terkonsolidasi baru yang bagus yang merupakan bagian dari keseluruhan alur kerja "sunting penyebaran properti" di Server Manager baru. Tangkapannya adalah bahwa Anda hanya mendapatkan akses ke alur kerja itu jika Anda memiliki peran Layanan Desktop Jarak Jauh diinstal (sejauh yang saya tahu).

Ini sepertinya sedikit kekeliruan dari pihak Microsoft. Bagaimana kita bisa mengonfigurasi sertifikat SSL khusus untuk RDP pada Windows Server 2012 ketika itu berjalan dalam mode Remote Administration default tanpa perlu menginstal peran Remote Desktop Services?

Ryan Bolger
sumber
Terkait -> superuser.com/questions/1093159/...
FreeSoftwareServers

Jawaban:

80

Ternyata banyak data konfigurasi untuk RDSH disimpan di Win32_TSGeneralSettingkelas dalam WMI di root\cimv2\TerminalServicesnamespace. Sertifikat yang dikonfigurasi untuk koneksi yang diberikan direferensikan oleh nilai sidik jari dari sertifikat itu pada properti yang dipanggil SSLCertificateSHA1Hash.


PEMBARUAN: Berikut adalah solusi Powershell umum yang mengambil dan menetapkan cap jempol sertifikat SSL pertama di toko pribadi komputer. Jika sistem Anda memiliki beberapa sertifikat, Anda harus menambahkan -Filteropsi pada gciperintah untuk memastikan Anda merujuk sertifikat yang benar. Saya meninggalkan jawaban asli saya di bawah ini untuk referensi.

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

Untuk mendapatkan nilai cap jempol

  1. Buka dialog properti untuk sertifikat Anda dan pilih tab Detail
  2. Gulir ke bawah ke bidang Thumbprint dan salin string hex yang dibatasi ruang menjadi sesuatu seperti Notepad
  3. Hapus semua spasi dari string. Anda juga harus berhati-hati dan menghapus karakter non-ascii yang terkadang disalin tepat sebelum karakter pertama dalam string. Itu tidak terlihat di Notepad.
  4. Ini adalah nilai yang Anda perlu atur dalam WMI. Seharusnya terlihat seperti ini: 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4 .

Sekarang Anda memiliki nilai cap jempol, berikut ini adalah satu-liner yang dapat Anda gunakan untuk mengatur nilai menggunakan wmic:

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

Atau jika PowerShell adalah pilihan Anda, Anda dapat menggunakan ini sebagai gantinya:

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

Catatan: sertifikat harus di Toko Sertifikat 'Pribadi' untuk akun Komputer.

Ryan Bolger
sumber
3
Hanya ingin menambahkan bahwa ini menyelamatkan saya dari kehancuran murni. Terima kasih. Menginstal peran dan me-restart server seperti yang disarankan dalam technet dan sejenisnya adalah konyol. Bahkan kemudian, setelah Anda menginstal sertifikat SSL di RD Gateway Manager, itu tidak terbawa ke login admin jarak jauh.
Papa
2
Terima kasih banyak atas ini. Saya pasti sudah mencari semua google sebelum menemukan ini. Ada terlalu banyak hasil yang mengatakan kepada saya untuk menginstal "Layanan Desktop Jarak Jauh" melalui "Tambahkan peran dan fitur", tetapi melakukannya mengharuskan Anda untuk bergabung dengan domain.
Sethi
2
Jika saya mencoba melakukannya menggunakan skrip PS Anda, saya mendapatkan "Parameter Tidak Valid". Masalah yang sama jika saya melakukannya secara manual, juga ...
deed02392
1
Saya mendapatkan argumen yang tidak valid menggunakan semua metode sampai saya mengimpor kembali sertifikat termasuk kunci pribadi. Kesalahan sederhana.
toffitomek
2
Saya lagi: D Saya mendapatkan kesalahan "Parameter tidak valid" di Powershell juga saat menjalankan wmic. Baru saja melihat catatan di bagian bawah. Pastikan sertifikat juga ada di Personal store. Milik saya ada di toko Web Hosting kali ini ...
Sethi
4

Jika Anda mendapatkan "Parameter Tidak Valid" ketika Anda mencoba solusi Ryan, pastikan Anda menggunakan command prompt yang ditinggikan (jalankan sebagai administrator).

David Literak
sumber
Tidak percaya ini tidak memiliki suara positif!
Adrian Godong
0

Anda perlu domain.pfx & sidik jari Anda dalam file txt SSLCertificateSHA1Hash.txt.

Kemudian jalankan ini di 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
FreeSoftwareServers
sumber