Signer des fichiers RDP en utilisant votre propre certificat du côté client
Pour simplifier la procédure, plusieurs scripts PowerShell ont été écrits à votre disposition. Veuillez changer les valeurs des variables avec les vôtres avant de les utiliser.
Première étape
Vous devrez d'abord créer votre propre certificat de signature, avec une clé privée exportable.
Cela nécessite des privilèges d'administrateur.
Notez que l'empreinte digitale du certificat sera du côté de la configuration de l'utilisateur.
$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
Deuxième étape (sur le poste de travail de l'utilisateur)
Une fois le certificat de signature généré, afin que votre client puisse l'utiliser, il devra faire ce qui suit :
- importer le certificat dans le magasin “CurrentUser\My” pour pouvoir signer des fichiers rdp avec rdpsign en utilisant l'empreinte du certificat
- importer le certificat dans le magasin “CurrentUser\Root” afin que les rdp signés avec ce certificat soient reconnus
$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
Troisième étape (Sur le poste de travail de l'utilisateur)
Pour que l'ordinateur fasse pleinement confiance au fichier rdp signé avec ce certificat, vous devrez l'ajouter dans la liste des empreintes digitales de certificats de confiance du registre.
emplacement : “HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Terminal Services”
clé : “TrustedCertThumbprints”
type : chaîne
Remarque : puisque nous écrivons ici dans HKEY_LOCAL_MACHINE, des privilèges d'administrateur seront nécessaires.
$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
Quatrième étape (sur le poste de travail de l'utilisateur)
Enfin, pour indiquer au programme “Connection Client” de signer en utilisant votre certificat et de signer avec son empreinte digitale, vous devrez définir la clé de registre suivante : emplacement : “HKEY_CURRENT_USER\Software\Digital River\ConnectionClient”
OU
emplacement : “HKEY_LOCAL_MACHINE\Software\Digital River\ConnectionClient”
clé : “CertThumbprint”
type : chaîne
valeur : VOTRE_IMPRESSION_DIGITALE
$thumbprint = "YOUR_THUMBPRINT"New-ItemProperty -Path "HKCU:\Software\Digital River\ConnectionClient" -Name "CertThumbprint" -PropertyType String -Value $thumbprint -Force