Question Comment fournir un certificat de serveur vérifié pour les connexions Remote Desktop (RDP) à Windows 10


Nous avons une machine Windows 10 Pro à notre bureau qui dispose d’un port ouvert vers 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 TLS 1.1 ou supérieur, mais il ne présente pas de certificat SSL vérifié en externe, uniquement le certificat auto-signé auto-généré par Remote Desktop Services. nous donne deux problèmes:

  1. Nous ne pouvons pas être totalement confiants lorsque nous nous connectons à distance, nous nous connectons vraiment à cette machine et pas à une connexion détournée.
  2. Notre site échoue au contrôle de conformité PCI-DSS 3.1 (requis parce que nous utilisons là-bas une machine à cartes de débit / crédit au point de vente qui se connecte via Internet). Le contrôle signale les erreurs fatales sur ce port de bureau distant connecté à Internet: «SSL Self-Signed Certificate» et «SSL Certificate with Wrong Hostname».

Comment puis-je obtenir une machine Windows 10 Pro (ou Windows 7/8 / 8.1 Pro) faisant office de serveur / hôte pour présenter un certificat SSL correct pour la vérification du Bureau à distance?


4
2018-06-24 14:40


origine


Vous pouvez soit placer le certificat auto-signé dans le magasin de certificats de chaque machine qui se connectera à cette machine, afin que seul ce certificat auto-signé soit approuvé. Vous pouvez également obtenir le certificat signé par une autorité de certification et, par défaut, car l'autorité de certification est approuvée, le certificat que l'hôte veut utiliser sera approuvé. Vous ne serez pas en mesure de résoudre vos problèmes de conformité PCI-DSS 3.1 sauf si vous obtenez un certificat signé par CA.  Vous devriez faire ça. - Ramhound
Merci @ Ramhound, vous avez tout à fait raison, j'ai besoin d'un certificat signé par une autorité de certification - j'en ai maintenant un. - gogoud


Réponses:


Vous pouvez configurer cette machine hôte pour utiliser et présenter votre certificat SSL (existant, acheté) vérifié en externe de cette manière (les instructions fonctionnent probablement aussi pour Windows 8 & 8.1, peuvent ou non fonctionner pour Windows 7). Microsoft KB 2001849):

Tout d'abord, vous devez avoir acheté un certificat SSL authentique vérifié.

Si vous avez ce certificat dans un fichier au format pkcs12 (par exemple, l'extension pfx), vous pouvez afficher les empreintes digitales 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 à l'adresse / 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 une empreinte digitale SHA1 ainsi:

  1. 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 à la demande: sudo openssl pkcs12 -export -out mysite.pfx -inkey /etc/ssl/private/mysite.pem -in /etc/ssl/certs/mysite.crt -certfile /etc/ssl/mysite.ca-bundle
  2. Déplacez ou copiez ce fichier au besoin afin qu'il soit accessible par votre ordinateur hôte Windows.
  3. Afficher l'empreinte SHA1 de la clé (vous aurez besoin de ceci ci-dessous): openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint

Importez le fichier au format pkcs12 (par exemple, le fichier pfx) dans le magasin de certificats personnels de la machine hôte Windows:

  1. Démarrer / Exécuter / mmc
  2. Fichier / Ajouter Supprimer un composant logiciel enfichable / Certficates / Ajouter / Compte d'ordinateur / Ordinateur local / OK
  3. Dans la fenêtre de gauche, cliquez avec le bouton droit sur Certificats (ordinateur local) / Personnel, choisissez Toutes les tâches / Importer ...
  4. Localisez le fichier pfx et importez-le, je suggère que pour des raisons de sécurité, vous ne le rendiez pas exportable.
  5. En élargissant vos Personal / Certificates, vous devriez maintenant voir 3 certificats, dont l'un est votre certificat de site (par exemple, mysite.com). Cliquez avec le bouton droit sur ce certificat de site et cliquez avec le bouton droit de la souris, choisissez Toutes les tâches / Gérer les clés privées ...
  6. Ajouter l'utilisateur 'NETWORK SERVICE' avec l'autorisation Lire uniquement (pas sous contrôle total), puis Appliquer
  7. Fermer mmc

Utilisez regedit pour ajouter une nouvelle valeur binaire appelée SSLCertificateSHA1Hash à HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp. La valeur requise est l’empreinte SHA1 du certificat obtenu ci-dessus: cliquez avec le bouton droit sur la nouvelle valeur, choisissez Modifier, puis saisissez les codes hexadécimaux de manière séquentielle (sans virgule ou espace ou virgule, les lettres ne sont pas sensibles à la casse) 20 paires d'hex 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. l'ordinateur a été vérifié. Un port ouvert à partir d'Internet via cet hôte doit maintenant passer le test du nom d'hôte PCI-DSS 3.1.


8
2018-06-24 14:40



Merci beaucoup. J'utilise ces étapes exactes sur mes machines et cela fonctionne bien. - Peter Berbec


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 numérique du certificat, 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


3
2018-06-24 19:48