Windows 10 rdp + valid ssl certificate

Door HKLM_ op dinsdag 28 augustus 2018 13:32 - Reacties (16)
Categorie: Windows, Views: 3.003

RDP valid ssl

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.

Volgende: Add windows updates to install.wim 13-12 Add windows updates to install.wim
Volgende: Unifi Cloudkey SSL certificate + ssllabs score A 21-08 Unifi Cloudkey SSL certificate + ssllabs score A

Reacties


Door Tweakers user |sWORDs|, dinsdag 28 augustus 2018 15:48


code:
1
2
certutil -p "password" -importPFX "%~dp0cert.pfx"
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="111aaa1111aaaaaaaaaaaaaaaaaaaa11"


Door Tweakers user HKLM_, dinsdag 28 augustus 2018 15:51

|sWORDs| schreef op dinsdag 28 augustus 2018 @ 15:48:

code:
1
2
certutil -p "password" -importPFX "%~dp0cert.pfx"
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="111aaa1111aaaaaaaaaaaaaaaaaaaa11"

Die wmic had ik in mijn zoektocht ook voorbij komen maar daar kreeg ik op windows 10 een error mee :P

[Reactie gewijzigd op dinsdag 28 augustus 2018 15:51]



Door Tweakers user HKLM_, dinsdag 28 augustus 2018 16:44

Zorg eens dat het beter te vinden is in google joh :P en waarom heeft die geen https...

* HKLM_ Of ik zit in mijn windows server google buble

[Reactie gewijzigd op dinsdag 28 augustus 2018 16:49]


Door Tweakers user Eagle Creek, woensdag 29 augustus 2018 14:55

Gezien de korte levensduur van een Let's Encrypt certificaat is het misschien wel handig om de vervanging te scripten :). Aangezien elk nieuw certificaat een eigen hash heeft.

Door Tweakers user HKLM_, woensdag 29 augustus 2018 15:00

Eagle Creek schreef op woensdag 29 augustus 2018 @ 14:55:
Gezien de korte levensduur van een Let's Encrypt certificaat is het misschien wel handig om de vervanging te scripten :). Aangezien elk nieuw certificaat een eigen hash heeft.
Dat is wel een nadeel van let's encrypt certificaten de korte levensduur. Voor het vernieuwen ga ik binnenkort eens kijken naar de code die hierboven benoemt staat :)

Door Tweakers user RobIII, woensdag 29 augustus 2018 21:07

HKLM_ schreef op dinsdag 28 augustus 2018 @ 16:44:
[...]


Zorg eens dat het beter te vinden is in google joh :P en waarom heeft die geen https...

* HKLM_ Of ik zit in mijn windows server google buble
Die HAD HTTPS totdat StartSSL op de blacklist ging :P Ik kan HTTPS helaas momenteel niet aanzetten omdat er nog wat externe shizzle geladen wordt over HTTP en die bak waar dat vandaan komt kan ik (nog) geen LE op installeren/gebruiken. Maar dat komt wel. Moet er alleen even een keer voor gaan zitten :P

Door Tweakers user kevinr1, woensdag 29 augustus 2018 21:14

Nu nog automatiseren met bijv Ansible?

Door Tweakers user ShellGhost, donderdag 30 augustus 2018 21:38

Voor 15 euro per jaar heb je een ssl cert. Waarom om de drie maanden gaan zitten kutten?
https://www.transip.nl/ssl-certificaten/

Door Tweakers user HKLM_, donderdag 30 augustus 2018 21:54

ShellGhost schreef op donderdag 30 augustus 2018 @ 21:38:
Voor 15 euro per jaar heb je een ssl cert. Waarom om de drie maanden gaan zitten kutten?
https://www.transip.nl/ssl-certificaten/
Omdat het voor test was... mijn jaar certificate verloopt over een maar maanden en dan trek ik dat recht qua dns names

Door Tweakers user Squ1zZy, donderdag 30 augustus 2018 22:01

Leuk stukje HKLM_ ;)

Je mag je OS wel op Engels zetten. In het Nederlands ziet het er niet uit :D

Goed bezig!

Door Tweakers user Eagle Creek, vrijdag 31 augustus 2018 10:20

Squ1zZy schreef op donderdag 30 augustus 2018 @ 22:01:
Leuk stukje HKLM_ ;)

Je mag je OS wel op Engels zetten. In het Nederlands ziet het er niet uit :D

Goed bezig!
Wat ziet er in het NL niet uit? Het is maar net wat je gewend bent..

Door Tweakers user Squ1zZy, zaterdag 1 september 2018 13:32

Eagle Creek schreef op vrijdag 31 augustus 2018 @ 10:20:
[...]

Wat ziet er in het NL niet uit? Het is maar net wat je gewend bent..
Als beheerder een OS in het Nederlands is not-done ;)

Door Tweakers user HKLM_, zaterdag 1 september 2018 14:36

Squ1zZy schreef op zaterdag 1 september 2018 @ 13:32:
[...]


Als beheerder een OS in het Nederlands is not-done ;)
Ach het is maar voor thuis, op werk nettjes alle servers in het engels.

Door Tweakers user Eagle Creek, woensdag 5 september 2018 16:28

Squ1zZy schreef op zaterdag 1 september 2018 @ 13:32:
[...]


Als beheerder een OS in het Nederlands is not-done ;)
Vroeg‚h...

De tijd dat Nederlandstalige servers later patches ontvingen dan de Engelstalige ligt (gelukkig) al lang achter ons. De core is inmiddels identiek, het taalpakket komt er bovenop. Als jij binnen jouw beheerorganisatie NL fijner vindt werken lijkt me dat een prima keus die je hebt. Dat veel documentatie on the webs in het Engels is, is dan nog een persoonlijke afweging.

[Reactie gewijzigd op woensdag 5 september 2018 16:30]


Door Tweakers user HKLM_, woensdag 5 september 2018 16:30

Eagle Creek schreef op woensdag 5 september 2018 @ 16:28:
[...]

Vroeg‚h...

De tijd dat NL servers later patches ontvangen dat de Engelse ligt lang achter ons. De core is hetzelfde, het taalpakket zet je er bovenop. Als jij binnen jouw beheerorganisatie NL fijner vindt werken lijkt me dat een prima keus die je hebt.
Toch is een server in het engels lekkerder hoor zeker met het troubleshooting van errors etc die nu ook in het nederlands worden weergegeven i.p.v engels.

Om te kunnen reageren moet je ingelogd zijn. Via deze link kun je inloggen als je al geregistreerd bent. Indien je nog geen account hebt kun je er hier ťťn aanmaken.