Nous avons une machine Windows 10 Pro dans notre bureau qui a un port ouvert vers Internet pour les connexions entrantes au bureau à distance (un «hôte»). Il est bien protégé par un mot de passe complexe et un nombre limité de tentatives autorisées et uniquement TLS 1.1 ou supérieur, mais il ne présente pas de certificat SSL vérifié en externe, uniquement celui auto-généré auto-signé fourni par Remote Desktop Services, et ce nous pose deux problèmes:
- Nous ne pouvons pas être totalement confiants lors de la connexion à distance, nous nous connectons vraiment à cette machine et non à une connexion détournée.
- Notre site échoue au contrôle de conformité PCI-DSS 3.1 (obligatoire car nous utilisons là un appareil de carte de débit / crédit au point de vente qui se connecte via Internet). La vérification signale des erreurs fatales sur ce port de bureau distant accessible sur Internet: «Certificat auto-signé SSL» et «Certificat SSL avec un nom d'hôte incorrect».
Comment puis-je obtenir une machine Windows 10 Pro (ou Windows 7/8 / 8.1 Pro) agissant en tant que serveur / hôte pour présenter un certificat SSL approprié pour la vérification du Bureau à distance?
Réponses:
Vous pouvez configurer cette machine hôte pour qu'elle utilise et présente ainsi votre certificat SSL (existant, acheté) vérifié en externe (les instructions fonctionnent probablement également pour Windows 8 et 8.1, peuvent ou non fonctionner pour Windows 7) (certaines parties de ce système sont basées sur Microsoft KB 2001849 ):
Tout d'abord, vous devez avoir acheté un véritable certificat SSL vérifié.
Si vous avez ce certificat dans un fichier au format pkcs12 (par exemple l'extension pfx), vous pouvez ainsi visualiser l'empreinte SHA1 en utilisant Linux ou Cygwin (vous en aurez besoin ci-dessous):
Alternativement, si vous avez les fichiers de certificats individuels sur votre serveur Linux à / 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 ainsi l'empreinte SHA1:
Créez un fichier pfx pour votre certificat, si vous n'en avez pas déjà un (ici: mysite.pfx) - définissez un bon mot de passe lorsque demandé:
Déplacez ou copiez ce fichier pfx selon les besoins afin qu'il soit accessible par votre ordinateur hôte Windows.
openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint
Importez le fichier au format pkcs12 (par exemple pfx) dans le magasin de certificats personnels de la machine hôte Windows:
Utilisez regedit pour ajouter une nouvelle valeur binaire appelée SSLCertificateSHA1Hash à
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
. La valeur dont il a besoin est l'empreinte digitale SHA1 du certificat obtenu ci-dessus: cliquez avec le bouton droit sur la nouvelle valeur, choisissez Modifier, puis saisissez les codes hexadécimaux séquentiellement (sans deux-points ni espaces ni virgules, 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 la machine 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 à 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: cliquer sur ceci montre que l'identité de la télécommande l'ordinateur a été vérifié. Un port ouvert depuis Internet vers cet hôte devrait maintenant passer le test de nom d'hôte PCI-DSS 3.1.
la source
Voici les étapes de base que j'utilise:
Obtenez un certificat valide pour l'hôte (il ne doit pas provenir d'une autorité de certification externe, mais toutes vos machines doivent y faire confiance). Assurez-vous qu'il a le nom d'hôte correct, j'ai eu des problèmes avec les certificats génériques.
Installez le certificat sur l'hôte, comme:
recherchez l'empreinte du certificat, dans l'interface utilisateur ou dans PowerShell:
Dites maintenant à Remote Desktop d'utiliser ce certificat:
aucun redémarrage requis
la source
Mon cert est livré avec 2 fichiers nécessaires,
domain.crt
&domain.ca-bundle
et j'ai mondomain.key
de générer la demande.Voici comment je l'ai configuré à l'aide d'une machine virtuelle Linux pour combiner les certificats et générer l'empreinte digitale et le CMD Windows pour configurer l'hôte. Cela permet un script complet de l'installation.
Les plus grandes différences entre la mienne et la réponse @gogoud sont:
wmic /namespace:
via l'invite CMD.NETWORK SERVICE
autorisations.Créez un répertoire dans lequel travailler et déplacez-y les 3 fichiers:
Créer une clé de format pfx:
Exporter SSLCertificateSHA1Hash / FingerPrint vers un fichier TXT:
Importer un certificat dans Windows (invite CMD élevée élevée):
Cela peut être davantage scripté via le commutateur "-p MyPassword"
Maintenant, ajoutez SSLCertificateSHA1Hash à RDP-Tcp via CMD (Elevated CMD Prompt):
Vous devrez ajouter l'utilisateur "Service réseau" avec les autorisations "Lecture seule" maintenant:
Redémarrez l'hôte:
la source