Demande de certificat pour les systèmes Windows via le service d'enregistrement des périphériques réseau (NDES) avec Windows PowerShell

Si l'on souhaite équiper de certificats des systèmes Windows qui n'ont pas la possibilité de communiquer directement avec une autorité de certification intégrée à Active Directory ou qui ne se trouvent pas du tout dans la même structure globale d'Active Directory, il ne reste dans la plupart des cas que l'installation manuelle des certificats.

Depuis Windows 8.1 / Windows Server 2012 R2, un client intégré pour le Simple Certificate Enrollment Protocoll (SCEP) se trouve toutefois à bord. Côté serveur, SCEP est géré par le Service d'enregistrement des périphériques réseau (Network Device Enrollment Service, NDES) mis en œuvre dans l'infrastructure à clés publiques de Microsoft depuis Windows Server 2003.

Une caractéristique particulièrement intéressante de SCEP est que le protocole permet de renouveler un certificat en indiquant un certificat déjà existant. Quoi de plus logique donc que d'utiliser cette interface ? Ce qui manque encore, c'est une automatisation correspondante via Windows PowerShell.

Le service d'enregistrement des périphériques réseau (Network Device Enrollment Service, NDES) offre la possibilité de demander des certificats auprès d'une autorité de certification pour les périphériques qui ne disposent pas d'un identifiant dans Active Directory (par exemple les périphériques réseau tels que les routeurs, les commutateurs, les imprimantes, les clients légers ou les smartphones et tablettes). Pour une description plus détaillée, voir l'article "Principes de base du service d'enregistrement des périphériques réseau (Network Device Enrollment Service, NDES)„ .

Pour automatiser avec Windows PowerShell la demande des mots de passe à usage unique (OTP) nécessaires et la demande de certificat qui suit, j'ai écrit le module PowerShell „PSCertificateEnrollment“ et sur GitHub et le Galerie PowerShell fourni.

Le module PowerShell fonctionne uniquement sur Windows 8.1 ou Windows Server 2012 R2 ou plus récent. PowerShell Core et Linux ne sont pas supportés.

Tout d'abord, le module doit être installé et chargé sur le système.

Import-Module PSCertificateEnrollment

Demande d'un mot de passe à usage unique pour la demande ultérieure de certificat

Connaissez-vous TameMyCerts? TameMyCerts est un add-on pour l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend la fonction de l'autorité de certification et permet de Application de la réglementationIl s'agit d'un logiciel de gestion des certificats qui permet d'automatiser l'émission de certificats en toute sécurité. TameMyCerts est unique dans l'écosystème Microsoft, a déjà fait ses preuves dans d'innombrables entreprises du monde entier et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement. Une maintenance professionnelle est également proposée.

La commande „Get-NDESOTP“ serait normalement exécutée sur une station de travail de gestion ou un serveur de gestion.

Si l'on appelle la commande en indiquant le nom de l'ordinateur, une authentification est effectuée sur la page web d'administration NDES et le mot de passe à usage unique renvoyé est émis.

Get-NDESOTP -ComputerName "ndes.adcslabor.de"

La connexion est établie de cette manière avec SSL. Cependant, cela nécessite impérativement que le paramètre -ComputerName identique à celle indiquée dans le certificat SSL du serveur NDES.

De cette manière, il serait également facile de demander plusieurs mots de passe à usage unique en une seule fois.

Si vous faites plusieurs demandes, veuillez configurer en conséquence le nombre de mots de passe en circulation simultanément.

Facultatif : se connecter en indiquant son nom d'utilisateur et son mot de passe

Par défaut, l'identité de l'utilisateur connecté est utilisée pour la connexion au serveur NDES. L'ouverture de session avec indication du nom d'utilisateur et du mot de passe est possible via le -Credential qui attend un objet PSCredential (créé avec Get-Credential).

Facultatif : désactiver l'utilisation de SSL (non recommandé)

L'utilisation de SSL peut être activée par le commutateur -NoSSL être désactivé si nécessaire.

L'utilisation de SSL est fortement recommandée pour les demandes de mots de passe à usage unique afin de protéger les données de connexion utilisées.

Demander le certificat via le serveur NDES

Lors de la demande d'un certificat via SCEP, le demandeur a un contrôle total sur les informations sur le sujet contenues dans le certificat. La demande de certificat via SCEP ne devrait donc être utilisée que dans des environnements contrôlés ou pour le renouvellement confortable de certificats (voir plus loin).

Par défaut, la demande de certificat se fait dans le contexte de l'utilisateur. Le bouton -MachineContext il est également possible de demander un certificat pour le compte de l'ordinateur. Dans ce cas, la commande doit toutefois être exécutée avec des droits d'administrateur (Run as Administrator).

Sur le système cible, la demande d'un certificat peut maintenant être effectuée avec la commande „Get-NDESCertificate“ en indiquant le mot de passe à usage unique demandé auparavant.

Get-NDESCertificate `
-ComputerName "192.168.1.136" `
-Upn "Administrator@intra.adcslabor.de" `
-ChallengePassword "BDE00774A789610F"

Facultatif : utiliser SSL

Contrairement à la demande du mot de passe à usage unique, aucun Secure Sockets Layer (SSL) n'est utilisé par défaut pour la demande du certificat, car les données transmises sont suffisamment protégées par le protocole SCEP (voir l'article „Principes de base du service d'enregistrement des périphériques réseau (Network Device Enrollment Service, NDES)„).

Si cela s'avère nécessaire, l'interrupteur -UseSSL pour établir une connexion avec SSL.

Renouvellement du certificat

Il est également possible de demander un certificat avec authentification par un certificat déjà existant. Il faut d'abord transférer l'ancien certificat dans une variable (type de données X509Certificate2).

$OldCert = Get-ChildItem -Path Cert:\CurrentUser\my\09D57E727FE4BEC786E46D26C08321C139173E4C

Il peut ensuite être indiqué comme certificat de signature pour la demande d'un nouveau certificat.

Les informations sur le sujet (Subject et Subject Alternative Name) sont lues à partir de l'ancien certificat et reprises dans la demande de certificat pour le nouveau certificat. Les informations ne peuvent pas être configurées dans ce mode. De cette manière, il est garanti que les informations sur le sujet sont identiques au certificat précédent et qu'elles sont donc acceptées par le serveur NDES. Pour cette raison, ces informations ne peuvent pas non plus être indiquées lorsque le mode de renouvellement est utilisé.

$OldCert | Get-NDESCertificate -ComputerName "192.168.1.136"

Un renouvellement du certificat en utilisant le certificat précédent peut également être effectué avec les outils intégrés.

Conclusion

La demande de mots de passe et de certificats à usage unique via NDES peut par exemple être utilisée pour une automatisation du cloud afin d'équiper automatiquement de certificats les systèmes qui ne sont pas membres du domaine.

La possibilité de demander des certificats en mentionnant un certificat déjà existant permet également de renouveler le certificat. des certificats de serveur web demandés manuellement être considérablement simplifiée.

Liens complémentaires :

Sources externes

Les commentaires sont fermés.

fr_FRFrançais