RDP og RD Gateway: SSL-certifikat opsætning
Certifikatet til RD Gateway, RD Web Access, RD Connection Broker og RDP-lytteren, fornyet automatisk med simple-acme eller installeret manuelt.
Sådan virker det
- Udsted via ACME på serveren simple-acme udsteder eller fornyer certifikatet med DNS-01, fx via FairSSL AutoDNS med en CNAME viderestilling for _dnsauth.
- Importér i Windows Certifikatet lægges i Windows Certificate Store. PrivateKeyExportable skal være true i settings.json, så RDP-tjenesterne kan bruge nøglen.
- Bind til RDS-rollerne simple-acme opdaterer IIS-bindingen til RD Web Access, og ImportRDSFullFairSSL.ps1 binder certifikatet til RD Gateway, Connection Broker og RDP-lytteren og genstarter tjenesterne.
- Kontrollér Bruger gatewayen stadig det gamle certifikat, så genstart TSGateway og se simple-acmes logmappe.
Remote Desktop Gateway bruger HTTPS til at tunnelere RDP-trafik sikkert over internet. Denne guide dækker certifikatkrav, automatisk opsætning med simple-acme, manuel installation med PowerShell, Server Manager og RD Gateway Manager, GPO-distribution til RDP-servere og fejlfinding.
Understøttede versioner
| Platform | Versioner | Kører på | ACME-klient |
|---|---|---|---|
| Remote Desktop Services | VersionerRD Gateway (også uden RD Connection Broker), RD Web Access, RD Web Client, RD Connection Broker og RDP-lytteren | Kører påWindows Server 2012 eller nyere | ACME-klientsimple-acme 2.4.0+ (FairSSL-udgaven, .NET 10 medfølger) + ImportRDSFullFairSSL.ps1 |
Arkitektur
En typisk Remote Desktop-opsætning med gateway har flere komponenter, der hver kræver certifikater:
Internet-klient
MSTSC / Remote Desktop
RD Gateway
HTTPS (port 443)
Offentligt certifikat
RD Web Access
IIS (port 443)
Offentligt certifikat
RDP-servere
Internt netværk
Internt/offentligt cert
RD Gateway og RD Web Access kører typisk på samme server.
Certifikatkrav
| Komponent | Certifikattype | Hostname | Bemærkning |
|---|---|---|---|
| RD Gateway | Offentligt (DV/OV) | rdp.example.dk | Internet-eksponeret, offentligt CA nødvendigt |
| RD Web Access | Offentligt (DV/OV) | rdp.example.dk | Samme hostname som gateway (IIS-binding) |
| RDP-servere | Internt / offentligt | server01.intern.dk | Kun NLA-autentificering |
Opsætning med simple-acme
Simple-acme automatiserer hele certifikatlivscyklussen: udstedelse, installation i Windows Certificate Store,
IIS-binding og binding til alle RDP-tjenester. Med FairSSLs ImportRDSFullFairSSL.ps1-script
håndteres RD Gateway, RD Connection Broker, RD Web Access og RDP-lytteren automatisk ved hver fornyelse.
Simple-acme kommando
simple-acme.exe ^
--baseuri https://fairssl.dk/acme/ ^
--source manual ^
--host rdp.example.dk ^
--validationmode dns-01 ^
--validation cloudflare ^
--cloudflareapitoken JERES_CF_TOKEN ^
--csr ec ^
--store certificatestore ^
--installation iis,script ^
--siteid 1 ^
--script "Scripts\ImportRDSFullFairSSL.ps1" ^
--scriptparameters "{CertThumbprint}" ^
--accepttos Hvad sker der automatisk?
Når simple-acme kører (manuelt eller via Task Scheduler), udfører den disse trin:
- 1 Udsteder eller fornyer certifikatet via ACME med DNS-01 validering
- 2 Importerer certifikatet i Windows Certificate Store (
Cert:\LocalMachine\My) - 3 Opdaterer IIS HTTPS-binding (
--installation iis) - 4 Kører
ImportRDSFullFairSSL.ps1der binder certifikatet til RD Gateway, RD Connection Broker, RD Web Access og RDP-lytteren og genstarter de relevante tjenester
Vigtige indstillinger i settings.json
I simple-acmes settings.json (eller settings_default.json), sæt:
Store.CertificateStore.PrivateKeyExportabletiltrue(nødvendigt for RDP-tjenester)ScheduledTask.RenewalMinimumValidDaystil15(forny senest 15 dage før udløb)
DNS-validering med FairSSL AutoDNS
Har I ikke API-adgang til jeres DNS-udbyder, kan I bruge FairSSL AutoDNS i stedet for Cloudflare. Opsæt en CNAME-record én gang, og FairSSL håndterer al DNS-validering automatisk:
# DNS: engangs CNAME-opsætning _dnsauth.example.dk CNAME dit-unikke-id.autodns.fairssl.dk.
Se simple-acme guiden for fuld dokumentation af scriptparametre og Task Scheduler-konfiguration.
Installer certifikatet manuelt
Uden simple-acme afhænger det af opsætningen, hvor du installerer certifikatet:
| Opsætning | Metode | Windows Server i Microsofts dokumentation |
|---|---|---|
| Én server med Remote Desktop, som ikke er en del af et RDS-deployment | 1. RDP-lytteren via WMI | Understøttede versioner; wmic er vist for 2012 R2 og ældre, PowerShell for 2025 |
| RDS-deployment med RD Connection Broker | 2. Server Manager eller 4. Set-RDCertificate | 2016, 2019, 2022, 2025 |
| RD Gateway alene | 3. RD Gateway Manager | 2016, 2019, 2022, 2025 |
Trin og kommandoer følger Microsoft Learn, og hvert underafsnit linker til den side, det bygger på.
Erstat THUMBPRINT med certifikatets thumbprint og værtsnavnene med dine egne.
1. RDP-lytteren på én server (Win32_TSGeneralSetting)
RDP-lytteren finder sit certifikat via thumbprint-værdien i egenskaben SSLCertificateSHA1Hash i WMI-klassen
Win32_TSGeneralSetting i namespace Root\CimV2\TerminalServices. Microsoft beskriver metoden til en server, der ikke er en del af et RDS-deployment.
- 1 Importér certifikatet med den private nøgle i lageret Personal for computerkontoen (
certlm.msc). Ligger det ikke der, fejler kommandoen i trin 4 med Invalid Parameter. - 2 Åbn certifikatet, vælg fanen Details og kopiér værdien i Thumbprint. Fjern alle mellemrum. På Windows Server 2012 R2 og ældre kan den kopierede værdi indeholde et usynligt tegn; indsæt den i en kommandoprompt for at se tegnet, og fjern det.
- 3 Giv NETWORK SERVICE læseadgang til den private nøgle, fordi Remote Desktop kører under den konto. I
certlm.msc: fold Personal ud, højreklik på certifikatet, vælg All Tasks → Manage Private Keys, vælg Add, skrivNETWORK SERVICE, vælg OK, sæt flueben i Read under Allow og vælg OK. - 4 Sæt thumbprint-værdien på RDP-lytteren med Windows PowerShell:
Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices | Set-WmiInstance -Arguments @{SSLCertificateSHA1Hash="THUMBPRINT"}
Kør kommandoen i Windows PowerShell 5.1 (powershell.exe), fordi Get-WmiObject og Set-WmiInstance er fjernet i PowerShell 7 (pwsh.exe).
På Windows Server 2012 og 2012 R2 viser Microsoft samme ændring med wmic i en kommandoprompt:
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"
Microsoft har markeret wmic som forældet (deprecated) fra Windows Server 21H1 og henviser til PowerShell i stedet.
Kontrollér resultatet ved at læse klassen med Get-WmiObject alene. SSLCertificateSHA1Hash skal vise din thumbprint-værdi, og
SSLCertificateSHA1HashType skal være 3 (Custom). 1 betyder, at RDP-lytteren stadig bruger det selvsignerede standardcertifikat.
Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices
Kilder: Remote Desktop listener certificate configurations ↗, Win32_TSGeneralSetting class ↗, wmic ↗, Get-WmiObject (PowerShell 5.1) ↗, Differences between Windows PowerShell 5.1 and PowerShell 7.x ↗ (Microsoft Learn).
2. RDS-deployment via Server Manager
I et RDS-deployment med RD Connection Broker sætter du certifikaterne samlet. Server Manager importerer certifikatet på alle servere i installationen og binder det til deres roller.
Certifikatet skal være udstedt til Server Authentication, have tillid hos både servere og klienter og have en privat nøgle, der kan eksporteres. Du skal bruge det som en .pfx-fil med den private nøgle og tilhørende adgangskode.
- 1 Vælg Remote Desktop Services i venstre rude i Server Manager. På fanen Overview, under Deployment Overview, vælger du TASKS → Edit Deployment Properties.
- 2 Vælg Certificates. Tabellen viser rolletjenesterne RD Gateway, RD Web Access og de to RD Connection Broker-rolletjenester (Enable Single Sign On og Publishing).
- 3 Vælg en rolletjeneste og derefter Select existing certificate. Vælg Browse, åbn
.pfx-filen og skriv adgangskoden. - 4 Sæt flueben i Allow the certificate to be added to the Trusted Root Certification Authorities certificate store on the destination computers og vælg OK.
- 5 Vælg Apply, og vent, til certifikatet er anvendt. Gentag trin 3 til 5 for hver rolletjeneste.
I Microsofts deployment-vejledning bruger RD Gateway og RD Web Access det eksterne FQDN, og de to RD Connection Broker-rolletjenester bruger det interne FQDN for RD Connection Broker-serveren. Efter et certifikatskifte kan det være nødvendigt selv at genstarte tjenesten TSGateway på hver RD Gateway-server. Til RDP-lytteren på RD Session Host-serverne henviser Microsoft til metoden i underafsnit 1.
Kilder: Use certificates in Remote Desktop Services ↗, Deploy your Remote Desktop environment ↗, Add high availability to the RD Web and Gateway web front ↗ (Microsoft Learn).
3. RD Gateway Manager
Importér certifikatet på gateway-serveren i RD Gateway Manager:
- 1 Vælg Remote Desktop Services → Servers i Server Manager. Højreklik på serveren, og vælg RD Gateway Manager.
- 2 Højreklik på navnet på RD Gateway-serveren i venstre rude, og vælg Properties.
- 3 På fanen SSL Certificate vælger du Import a certificate into the RD Gateway og derefter Browse and Import Certificate.
- 4 Vælg
.pfx-filen, vælg Open, og skriv adgangskoden. Fanen viser derefter certifikatets oplysninger.
Microsoft anbefaler et offentligt udstedt certifikat på RD Gateway, fordi klienterne forbinder udefra. Med et certifikat fra en privat CA skal alle klienter have tillid til kæden på forhånd.
Kilde: Deploy the Remote Desktop Gateway role ↗ (Microsoft Learn).
4. Set-RDCertificate (PowerShell)
Set-RDCertificate fra modulet RemoteDesktop importerer et certifikat, eller anvender et allerede installeret, til en RDS-rolle. Kør den i en PowerShell-session startet som administrator
på en computer med RDS-administrationsværktøjerne (RSAT) og den rolle, du konfigurerer. -Role tager RDGateway, RDWebAccess, RDRedirector eller RDPublishing;
kør kommandoen én gang for hver rolle, du bruger. Uden -ConnectionBroker bruger kommandoen den lokale computers FQDN.
Importér en .pfx-fil. Microsofts eksempel sætter RDWebAccess; erstat PathToPFXFile med den fulde sti til filen, og skift Role for de andre roller:
$password = Read-Host -AsSecureString -Prompt "Enter Password"
$parameters = @{
Role = "RDWebAccess"
Password = $password
ImportPath = "PathToPFXFile"
}
Set-RDCertificate @parameters
Brug et certifikat, der allerede er installeret (Windows Server 2019 og nyere). Microsofts eksempel sætter RDRedirector. Certifikatet skal ligge i LocalMachine\My på hver server, der kører rollen:
Set-RDCertificate -Role RDRedirector -Thumbprint THUMBPRINT -ConnectionBroker "rdcb.intern.dk"
Kontrollér resultatet. Get-RDCertificate viser subject, thumbprint, udløbsdato og niveau for hver rolle; et offentligt certifikat har niveauet Trusted.
Get-RDCertificate -ConnectionBroker "rdcb.intern.dk"
Kilder: Set-RDCertificate ↗, Get-RDCertificate ↗, Use certificates in Remote Desktop Services ↗ (Microsoft Learn).
GPO-distribution (Active Directory)
Denne sektion er kun relevant, hvis dine RDP-servere er domænetilsluttede Windows-maskiner i et Active Directory-miljø. Med Group Policy kan du konfigurere RDP-lytteren og NLA-krav centralt:
- 1 Åbn Group Policy Management Console og opret en ny GPO for RDP-servere.
- 2 Navigér til Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Security.
- 3 Aktivér Server Authentication Certificate Template og angiv certifikatskabelonen fra jeres interne CA, eller brug Require use of specific security layer for remote (RDP) connections sat til SSL.
- 4 Under Require user authentication for remote connections by using NLA: sæt til Enabled for at kræve NLA.
Et internt CA-certifikat til RDP-servere bag gateway er en god løsning. Distribuer root-certifikatet via GPO til klienternes Trusted Root Certification Authorities-lager. Dermed stoler alle domæne-klienter automatisk på RDP-servernes certifikater.
Hosts-fil trick: samme FQDN for gateway og intern RDP
Et almindeligt scenarie: RD Gateway og RDP-serveren bruger samme offentlige FQDN (f.eks. rdp.example.dk).
Klienten forbinder til gateway via det offentlige DNS, og gateway skal viderestille til den interne RDP-server.
Men gateway kan ikke resolve rdp.example.dk til den interne server, fordi offentlig DNS peger på gatewayen selv.
Løsningen er en hosts-fil entry på gateway-serveren:
# C:\Windows\System32\drivers\etc\hosts på RD Gateway-serveren 10.0.1.50 rdp.example.dk
Nu resolver gateway rdp.example.dk til den interne IP (10.0.1.50) og viderestiller RDP-trafikken korrekt.
Klienten ser kun rdp.example.dk og behøver ikke kende den interne IP.
Denne tilgang kræver at RDP-serveren accepterer forbindelser på rdp.example.dk hostnavnet.
Hvis RDP-serveren bruger NLA, skal dens certifikat matche rdp.example.dk eller have det som SAN.
Med et wildcard-certifikat (*.example.dk) på begge servere er dette automatisk opfyldt.
Fejlfinding
"The remote computer could not be authenticated"
Klienten stoler ikke på certifikatet. Tjek: (1) Er certifikatkæden komplet (intermediate + leaf)? (2) Matcher hostname i certifikatet det hostname klienten forbinder til? (3) Er certifikatet udløbet? Brug SSL Scanner til at verificere.
RD Gateway: "Your computer can't connect to the remote computer"
Typisk et certifikatproblem på gateway-siden. Tjek at certifikatet er bundet i RD Gateway Manager (ikke kun IIS).
Kør Get-Item "RDS:\GatewayServer\SSLCertificate\Thumbprint" i PowerShell for at verificere.
Sørg også for at TSGateway-tjenesten er genstartet efter certifikatændring.
NLA fejler bag gateway
NLA-autentificering sker mellem klient og RDP-server (ikke gateway). Klienten skal stole på RDP-serverens certifikat. I et domænemiljø: distribuer certifikatet via GPO. Uden domæne: importér root-certifikatet manuelt i klientens Trusted Root store.
Certifikat fornyet, men gateway bruger det gamle
RD Gateway cacher certifikatbindingen. Genstart TSGateway-tjenesten: Restart-Service TSGateway -Force.
Tjek at post-fornyelse scriptet kører korrekt ved at se logfilerne i simple-acmes logmappe.
Certifikater på mange servere og appliances
Et offentligt SSL-certifikat kan højst være gyldigt i 199 dage nu, 99 dage senest 15-03-2027 og 46 dage senest 15-03-2029. Hvert certifikat skal dermed skiftes mindst to gange om året nu og mindst otte gange om året fra 2029, på hver server, firewall og load balancer, det bruges på. sslbrain fra FairSSL kører som en appliance i jeres eget netværk og fornyer og installerer certifikaterne fra ét sted, også på udstyr uden agent.
Sådan fornyer og installerer sslbrain certifikater på Remote Desktop (RDP)(åbner sslbrain.com i en ny fane)Ofte stillede spørgsmål om RDP og SSL
Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.
*.example.dk) virker fint til RD Gateway, RD Web Access og interne RDP-forbindelser, så længe alle hostnavne er under samme domæne. Det forenkler opsætningen, fordi ét certifikat dækker alt. Overvej dog sikkerhedsimplikationen: hvis wildcard-nøglen kompromitteres, er alle services under domænet påvirket.Sikr jeres Remote Desktop-miljø
Opret en gratis konto og bestil dit første certifikat. Et DV-certifikat udstedes på under 2 minutter.