Certificats contrôleurs de domaine: Template Kerberos Authentication
Suite à la mise en place d’une autorité de certification Windows 2008, nous avons à notre disposition un nouveau modèle de certificats pour les contrôleurs de domaine nommé Kerberos Authentication. Ce modèle remplace le précédent: Domain Controller Authentication. Pour avoir plus d’informations concernant les différents templates de certificats je vous conseille de consulter ce lien.
Le template Kerberos Authentication peut être installé pour remplacer le modèle Domain Controller Authentication à partir d’un DC sous Windows 2003 SP2. Ci dessous un tableau comparatif entre l’ancien et le nouveau modèle:
Domain Controller Authentication | Kerberos Authentication | |
Key Usage | Client Authentication
Server Authentication Smart Card Logon |
Client Authentication
Server Authentication Smart Card Logon KDC Authentication. |
Subject Alternate Name | DNS Name : FQDN du contrôleur de domaine. | DNS Name : FQDN du domaine.
DNS Name : Nom NetBios du domaine. |
Pour plus d’informations concernant l’utilisation de la clef KDC Authentication qui permet d’assurer que vos utilisateurs de cartes à puce s’authentifient auprès d’un contrôleur de domaine valide vous pouvez lire ce document : Enabling Strict KDC Validation in Windows Kerberos.
Le fait d’avoir le nom du domaine dans le Subject Alternate Name du certificat et non seulement le nom du contrôleur de domaine permet à un DC de prouver qu’il appartient bien au domaine mentionné dans le Subject Alternate Name. Par ailleurs cette information doit être contenue dans le certificat afin d’activer la Strict KDC Validation.
Nous allons décrire comment distribuer les nouveaux certificats de type Kerberos Authentication sur vos contrôleurs de domaine et révoquer les anciens certificats de type Domain Controller Authentication une fois que ceux ci ne servent plus. Nous distribuons les certificats aux DCs en utilisant l’autoenrollment qui est à configurer via GPO et en paramétrant correctement les modèles de certificats pour contrôleurs de domaine.
Pour indiquer au nouveau template de remplacer l’ancien il vous suffit de démarrer la console certtmpl.msc et d’éditer le template Kerberos Authentication afin d’indiquer qu’il écrase (“supersedes“) le modèle Domain Controller Authentication. Voir paragraphe “Superseding Certificate Templates” de ce lien.
Une fois que le template est bien configuré pour l’autoenrollment, le nouveau certificat va se déployer automatiquement, au besoin lancer la commande certutil -pulse sur les DCs pour accélérer le processus.
Le certificat du contrôleur de domaine est alors automatiquement remplacé dans le magasin local de certificats, lors de l’installation du nouveau certificat les événements de la source AutoEnrollment vous indiquent que le certificat avec le modèle Kerberos Authentication est installé.
Avec ActiveRoles Management Shell for Active Directory v1.4 de Quest, vous pouvez en powershell gérer les certificats grâce au CmdLets de “Certificate and PKI management“. Nous allons tout d’abord vérifier le bon déploiement des nouveaux modèles de certificats sur nos DCs avec la commande suivante:
Get-QADComputer -computerRole 'DomainController' | Get-QADCertificate -Revoked:$false -template:'*kerberos authentication*' | format-table template,IssuedTo -autosize |
Si tout vos DCs ont bien autoenrollé le nouveau certificat, et que vous avez validé leur bon fonctionnement, vous pouvez désactiver l’ancien modèle Domain Controller Authentication avec la console certsrv.msc afin qu’aucun nouveau certificat avec ce modèle ne soit délivré. Finalement il ne vous reste plus qu’à révoquer les anciens certificats ayant pour modèle Domain Controller Authentication sur tous vos contrôleurs de domaine.
Pour cela nous allons combiner les CmdLets de Quest et la commande Certutil -revoke, il suffit donc de récupérer le numéro de série des certificats ayant pour template Domain Controller Authentication liés à nos objets AD contrôleurs de domaine et indiquer le code correspondant à la raison de la révocation: A savoir 4 pour Superseded.
Get-QADComputer -computerRole 'DomainController' | Get-QADCertificate -Revoked:$false -template:*domain controller authentication* | foreach {certutil -config %SRV_CA_FQDN%\%CA_Common_Name% -revoke $_.SerialNumber 4} |
Les variables suivantes sont à adapter:
- %SRV_CA_FQDN%: FQDN du serveur délivrant les certificats.
- %CA_Common_Name%: Nom du CA.
En combinant l’outil Certutil et les nouvelles fonctionnalités de gestion de certificats apportées par les Quest AD CmdLets v1.4, nous pouvons automatiser une partie des tâches d’administration liées à votre PKI.
This post is also available in: Anglais