Vraag Aangepast SSL-certificaat configureren voor RDP op Windows Server 2012 in de modus Extern beheer?


Dus de release van Windows Server 2012 heeft veel van de oude Remote Desktop-gerelateerde configuratiehulpprogramma's verwijderd. In het bijzonder is er niets meer Remote Desktop Session Host-configuratie hulpprogramma dat u toegang gaf tot het eigenschappenvenster van RDP-Tcp waarmee u een aangepast certificaat kunt configureren dat de RDSH kan gebruiken. In plaats daarvan is er een mooie nieuwe geconsolideerde GUI die deel uitmaakt van de algemene "edit deployment properties" -werkstroom in de nieuwe Server Manager. Het voordeel is dat je alleen toegang krijgt tot die workflow als je de Remote Desktop Services-rol hebt geïnstalleerd (voor zover ik kan zien).

Dit lijkt een beetje een vergissing van Microsoft. Hoe kunnen we een aangepast SSL-certificaat voor RDP configureren op Windows Server 2012 wanneer het wordt uitgevoerd in de standaardmodus voor extern beheer zonder de Remote Desktop Services-rol onnodig te installeren?


49
2017-11-01 07:15


oorsprong




antwoorden:


Het blijkt dat veel van de configuratiegegevens voor RDSH zijn opgeslagen in de Win32_TSGeneralSetting klasse in WMI in de root\cimv2\TerminalServices namespace. Het geconfigureerde certificaat voor een bepaalde verbinding wordt aangeduid met de waarde voor de waarde van de vingerafdruk van dat certificaat voor een eigenschap met de naam SSLCertificateSHA1Hash.


BIJWERKEN: Hier is een gegeneraliseerde Powershell-oplossing die de vingerafdruk van de eerste SSL-cert in de persoonlijke winkel van de computer grijpt en instelt. Als uw systeem meerdere certs heeft, moet u een -Filter optie voor de gci opdracht om ervoor te zorgen dat u naar de juiste cert verwijst. Ik heb mijn oorspronkelijke antwoord hieronder intact gelaten ter referentie.

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

Om de waarde van de thumbprint te krijgen

  1. Open het dialoogvenster Eigenschappen voor uw certificaat en selecteer het tabblad Details
  2. Blader omlaag naar het veld Thumbprint en kopieer de door ruimte begrensde hex-string naar zoiets als Notepad
  3. Verwijder alle spaties uit de reeks. Je zult ook een non-ascii-personage willen zien en verwijderen dat soms net voor het eerste teken in de string wordt gekopieerd. Het is niet zichtbaar in Kladblok.
  4. Dit is de waarde die u in WMI moet instellen. Het zou er ongeveer zo uit moeten zien: 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4.

Nu dat u de waarde voor de thumbprint hebt, kunt u hier een one-liner gebruiken om de waarde in te stellen met wmic:

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

Of als PowerShell jouw ding is, kun je dit in plaats daarvan gebruiken:

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

Notitie: het certificaat moet in het 'persoonlijke' certificaatarchief voor het computeraccount staan.


76
2017-11-01 07:15



Ik wilde gewoon toevoegen dat dit me van pure meltdown heeft gered. Dank je. Het installeren van de rollen en het herstarten van servers zoals voorgesteld binnen technet en dergelijke is belachelijk. Zelfs dan, als u de SSL cert in RD Gateway Manager eenmaal hebt geïnstalleerd, wordt deze niet overgedragen aan de externe beheerdersaanmelding. - Papa
Heel erg bedankt hiervoor. Ik moet hebben gezocht allemaal van Google voordat ik dit vond. Er zijn te veel resultaten die me vertellen om "Remote Desktop Services" te installeren via "Rollen en functies toevoegen", maar daarvoor moet je lid worden van een domein. - Sethi
Als ik het probeer te doen met behulp van je PS-script, krijg ik "Ongeldige parameter". Hetzelfde probleem als ik het ook handmatig doe ... - deed02392
Ik kreeg Ongeldig argument alle methoden gebruiken totdat ik het certificaat opnieuw heb geïmporteerd inclusief persoonlijke sleutels. Simpele fout. - toffitomek
Ik nogmaals: D Ik krijg die "Ongeldige parameter" -fout ook in Powershell tijdens het uitvoeren wmic. Ik heb net het briefje onderaan gezien. Zorg ervoor dat het certificaat ook in de persoonlijke winkel staat. De mijne was deze keer in de webwinkelwinkel ... - Sethi


Als u "Ongeldige parameter" krijgt wanneer u de oplossing van Ryan probeert, moet u zorgen voor een verhoogde opdrachtprompt (uitvoeren als beheerder).


2
2018-02-27 21:32



Ik kan niet geloven dat dit geen opwachting heeft gemaakt! - Adrian Godong


Is er een manier om de server het gebruik van een geldig clientcertificaat af te dwingen? Het lijkt erop dat ik vanuit de RDP-client kan kiezen om ongeldige certificaten te negeren. Ik wil dat de client geen verbinding kan maken als het certificaat ongeldig is.


0
2018-04-25 03:14