Add SSL Certificate to RDP

Laat ik eerst beginnen dat het niet verstandig is om systeem via rdp (3389) direct aan publieke internet te hangen. Daar zitten een aantal security risico’s aan die je via Google makkelijk kunt vinden.

Mocht je toch bij je systeem willen dan is een VPN de beste optie. Aangezien ik niet overal een VPN kan/mag opzetten kies ik voor om port 3389 voor een aantal ip adressen open te zetten. Hierdoor staat RDP open maar is deze alleen toegankelijk vanaf de opgegeven IP-adressen.

Gebruikte hardware / software

HPE Microserver Gen10
Windows 10 Pro (1803)
Let’s Encrypt 
Unifi USG 3P

Het self signed certificate:
Standaard komt een RDP sessie met een self signed certificate die onderstaande melding oplevert. Dit certificaat is in beheer van de Remote Desktop Services die iedere keer een nieuwe aanmaakt als deze verloopt.

RDP not valid

Zoals je kunt zien is de servernaam op het certifcaat onjuist en is het niet door een vertrouwde certificeringsinstantie uitgegeven. Uiteraard kan je die melding weg klikken er er nooit meer aan denken maar je kunt ook een geldig certificaat installeren.

Het koste mij wel wat moeite om via google achter de procedure te komen. Veel forums / handleidingen gaan over Windows server waar ze al snel naar een RDP gateway verwijzen. Echter gebruik ik windows 10 dus een RDP gateway is niet aanwezig. (deze handleiding werkt op alle windows systemen)

Install a server authentication certificate:
Open run in windows (windows-key + R) en typ MMC de MMC console zal worden geopend. Kies vervolgens voor Bestand -> Module toevoegen/verwijderen -> Certificaten (Toevoegen) -> Computer account -> locale computer. De MMC console zal je dan de certificaten store laten zien. Navigeer naar Persoonlijk -> Certificaten en importeer je certificate

MMC

Het aanmaken van een register key:
Open het register (Run/regedit) en navigeer naar HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp Maak vervolgens een nieuwe key aan met onderstaande gegevens:
Value name: SSLCertificateSHA1Hash
Value type: REG_BINARY
Value data: certificate thumbprint


Je certificate thumbprint kan worden gevonden in je certificaat onder: Details thumbprint (vingerafdruk) (zo iets) 42,49,e1,6e,0a,f0,a0,2e,63,c4,5c,93,fd,52,ad,09,27,82,1b,01

Remote Desktop Host Services:
De remote desktop host services draait onder het NETWORK SERVICE account. We gaan er voor zorgen dat dit account lees rechten krijgt op de key file van het certificaat.

Open je MMC console met je certificaat weer en klik met rechts op je certificate. Kies voor Alle taken en vervolgens voor Persoonlijke sleutel beheren…. onderstaand scherm zal openen. 

rechten

Voeg hier zoals in de screenshot te zien is NETWORK SERVICE toe en geef deze lezen rechten. Windows RDP zal nu gebruik gaan maken van het opgegeven certificaat bij het opzetten van een RDP verbinding.

Testen:
Maak een RDP sessie met je domainnaam.nl wat matcht met je certificaat. Je zult zien dat de not vailid melding niet meer komt in plaats daarvan zal er een slotje zijn in de bovenste RDP balk.

RDP Slot

Als je op het slot klikt zal er een melding komen dat de identiteit van de externe computer is gecontroleerd met behulp van een servercertificaat. 

RDP_Cert

RDP_Cert2

Je RDP connectie maakt nu gebruik van een geldig ssl certificate.