RDP-Dateien mit Ihrem eigenen Zertifikat auf der Client-Seite signieren
Um das Verfahren zu vereinfachen, wurden mehrere PowerShell-Skripte zu Ihrer Verfügung geschrieben. Bitte ändern Sie die Werte der Variablen zuerst in Ihre eigenen, bevor Sie sie verwenden.
Erster Schritt
Sie müssen zuerst Ihr eigenes Signierungszertifikat mit einem exportierbaren privaten Schlüssel erstellen.
Dies erfordert Administratorrechte.
Beachten Sie, dass der Fingerabdruck des Zertifikats auf der Benutzereinstellungsseite angezeigt wird.
$organization = "MyCompany"$commonName = "RDP Signer"$friendlyName = "RDP Signing Certificate"$pfxPassword = "MyStrongPassword!"$pfxFilePath = [Environment]::CurrentDirectory + "\signer.pfx"# In years$validityDuration = 3
Write-Host Certificate will be created in $pfxFilePath
# Generate the signing certificate$cert = New-SelfSignedCertificate ` -Type CodeSigningCert ` -Subject "CN=$commonName, O=$organization" ` -KeyUsage DigitalSignature ` -KeyExportPolicy Exportable ` -FriendlyName $friendlyName ` -CertStoreLocation "Cert:\LocalMachine\My" ` -NotAfter (Get-Date).AddYears($validityDuration)
# Generate the pfx file to import on client computer$thumb = $cert.Thumbprint
Write-Host Certificate thumbprint: $thumb
$pwd = ConvertTo-SecureString -String $pfxPassword -Force -AsPlainTextGet-ChildItem -Path Cert:\LocalMachine\My\$thumb | Export-PfxCertificate -FilePath "$pfxFilePath" -Password $pwd
Zweiter Schritt (Auf dem Benutzerarbeitsplatz)
Sobald das Signaturzertifikat erstellt ist, muss Ihr Kunde Folgendes tun, um es zu verwenden:
- Zertifikat im „CurrentUser\My“-Store importieren, um RDP-Dateien mit rdpsign unter Verwendung des Zertifikat-Fingerabdrucks signieren zu können.
- Zertifikat im „CurrentUser\Root“-Store importieren, damit signierte RDP mit diesem Zertifikat erkannt werden.
$pfxFilePath = [Environment]::CurrentDirectory + "\signer.pfx"$pfxPassword = "MyStrongPassword!"
$pwd = ConvertTo-SecureString -String $pfxPassword -Force -AsPlainText
# Import pfx in CurrentUser\My certificate store to be able to sign with rdpsign using the thumbprintImport-PfxCertificate -FilePath "$pfxFilePath" -CertStoreLocation "Cert:\CurrentUser\My" -Password $pwd
# Import pfx to the trusted root certificate authority of the user, so that signed rdp with this certificate are recognized.# Note: this triggers a windows confirmation popupImport-PfxCertificate -FilePath "$pfxFilePath" -CertStoreLocation "Cert:\CurrentUser\Root" -Password $pwd
Dritter Schritt (Auf dem Benutzerarbeitsplatz)
Um den Computer dazu zu bringen, die mit diesem Zertifikat signierte rdp-Datei vollständig zu vertrauen, müssen Sie sie in die Liste der vertrauenswürdigen Zertifikat-Thumbprints der Registrierung hinzufügen.
Standort: “HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Terminal Services”
key: “VertrauenswürdigeZertifikatDaumenabdrücke”
Typ: Zeichenfolge
Hinweis: Da wir hier in HKEY_LOCAL_MACHINE schreiben, werden Administratorrechte benötigt.
$thumbprint = "YOUR_THUMBPRINT"
$regPath = "HKLM:\Software\Policies\Microsoft\Windows NT\Terminal Services"$keyName = "TrustedCertThumbprints"
$current = (Get-ItemProperty -Path $regPath -Name $keyName -ErrorAction SilentlyContinue).$keyName$newValue = if ([string]::IsNullOrWhiteSpace($current)) { $thumbprint } else { "$current,$thumbprint" }
New-Item -Path $regPath -Force | Out-NullNew-ItemProperty -Path $regPath -Name $keyName -Value $newValue -PropertyType String -Force | Out-Null
Vierter Schritt (auf der Benutzerarbeitsstation)
Schließlich müssen Sie den "Connection Client"-Programm anweisen, mit Ihrem Zertifikat zu signieren und mit seinem Fingerabdruck zu signieren. Dazu müssen Sie den folgenden Registrierungsschlüssel festlegen: Standort: "HKEY_CURRENT_USER\Software\Digital River\ConnectionClient"
ODER
Standort: “HKEY_LOCAL_MACHINE\Software\Digital River\ConnectionClient”
key: “Zertifikatfingerabdruck”
Typ: Zeichenfolge
Wert: IHR_FINGERABDRUCK
$thumbprint = "YOUR_THUMBPRINT"New-ItemProperty -Path "HKCU:\Software\Digital River\ConnectionClient" -Name "CertThumbprint" -PropertyType String -Value $thumbprint -Force