Nous avons une machine Windows 10 Pro dans notre bureau qui a un port ouvert sur Internet pour les connexions de bureau à distance entrantes (un ‘hôte’). Il est bien protégé par un mot de passe complexe et un nombre limité de tentatives autorisées et uniquement par TLS version 1.1 ou supérieure, mais il ne présente pas de certificat SSL vérifié de manière externe, mais uniquement le certificat auto-signé auto-généré fourni par les services de bureau à distance. nous donne deux problèmes:
Comment faire en sorte qu'un ordinateur Windows 10 Pro (ou Windows 7/8/8.1 Pro) agissant en tant que serveur/hôte présente un certificat SSL approprié pour la vérification de Remote Desktop?
Vous pouvez configurer cette machine hôte pour qu'elle utilise et présente votre certificat SSL (existant, acheté) vérifié de manière externe (les instructions fonctionnent probablement aussi pour Windows 8 et 8.1, peuvent ou ne peuvent pas fonctionner pour Windows 7) (certaines parties sont basées sur un Microsoft KB 2001849 ):
Tout d’abord, vous devez avoir acheté un certificat authentifié et authentifié.
Si vous avez ce certificat dans un fichier au format pkcs12 (par exemple, une extension pfx), vous pouvez afficher l’empreinte SHA1 sous Linux ou Cygwin (vous en aurez besoin ci-dessous):
openssl pkcs12 -in mysite.pfx -nodes|openssl x509 -noout -fingerprint
Sinon, si vous avez les fichiers de certificat individuels sur votre serveur Linux sous/etc/ssl (/etc/ssl/certs/mysite.crt, /etc/ssl/mysite.ca-bundle et /etc/ssl/private/mysite.key ) vous pouvez créer un fichier pfx et obtenir l’empreinte SHA1 ainsi:
openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint
Importez un fichier au format pkcs12 (pfx, par exemple) dans le magasin de certificats personnels de la machine hôte Windows:
Utilisez regedit pour ajouter une nouvelle valeur binaire appelée SSLCertificateSHA1Hash dans HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp. La valeur dont il a besoin est l’empreinte SHA1 du certificat obtenu ci-dessus: cliquez avec le bouton droit de la souris sur la nouvelle valeur, choisissez Modifier, puis saisissez les codes hexadécimaux de manière séquentielle (sans point ni virgule ni virgule, les lettres ne sont pas sensibles à la casse) - il y a 20 paires hexagonales en tout (40 caractères).
Vous devrez peut-être redémarrer l'ordinateur hôte ou redémarrer les services Bureau à distance (à partir de Services.msc) avant que cela ne fonctionne.
Maintenant, après avoir établi une connexion de bureau à distance avec cet hôte en utilisant le nom de site correct (par exemple, mysite.com), vous devriez voir un cadenas verrouillé sur le côté gauche de la barre de connexion supérieure: en cliquant sur celui-ci, l'identité de la l'ordinateur a été vérifié. Un port ouvert depuis Internet vers cet hôte doit maintenant passer le test de nom d’hôte PCI-DSS 3.1.
Voici les étapes de base que j'utilise:
Obtenez un certificat valide pour l'hôte (il ne doit pas nécessairement provenir d'une autorité de certification externe, mais toutes vos machines doivent lui faire confiance). Assurez-vous qu'il a le bon nom d'hôte, j'ai eu des problèmes avec les certificats génériques.
Installez le cert sur l'hôte, comme:
certutil.exe -p myPassword -importPFX c:\mycert.pfx noExport
recherchez l'empreinte du cert, soit dans l'interface utilisateur, soit dans PowerShell:
$tp = (ls Cert:\LocalMachine\my | WHERE {$_.Subject -match "something unique in your certs subject field" } | Select -First 1).Thumbprint
dites maintenant à Remote Desktop d'utiliser ce certificat:
& wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="$tp"
aucun redémarrage requis