Déployer une PKI interne avec Active Directory Certificate Services pour émettre et gérer des certificats SSL/TLS dans votre domaine.
Après l'installation, configurez le type de CA :
CA-Entreprise.| Type de CA | Usage |
|---|---|
| Enterprise Root CA | Petites structures — CA unique intégrée à l'AD. |
| Enterprise Subordinate CA | Grandes structures — CA subordonnée à une CA racine hors-ligne. |
| Standalone Root CA | CA hors-ligne, non intégrée à l'AD (usage rare). |
certlm.msc.intranet.domaine.local, longueur de clé : 2048..req.certsrv.msc → clic droit → Soumettre une nouvelle demande et sélectionnez le fichier.WebServer est activé par défaut. Pour d'autres usages, dupliquez un template existant dans la console certtmpl.msc.
Pour que tous les postes du domaine fassent confiance aux certificats émis par votre CA :
certmgr.msc → Autorités de certification racines de confiance.Pour exporter le certificat racine manuellement :
certsrv.msc → clic droit sur la CA → Propriétés..cer et distribuez-le aux machines hors domaine..cer) et installez-le manuellement dans le magasin « Autorités de certification racines de confiance » de chaque machine.
certsrv.msc → Certificats délivrés pour voir tous les certificats émis.certlm.msc → clic droit sur le certificat → Renouveler le certificat avec une nouvelle clé.certsrv.msc, clic droit sur le certificat → Révoquer → choisissez la raison.Retrouvez ci-dessous les commandes PowerShell correspondant à chaque étape du tutoriel.
# Installe le rôle Autorité de certification + outils
Install-WindowsFeature -Name AD-Certificate -IncludeManagementTools
# Inscription web (optionnel)
Install-WindowsFeature -Name ADCS-Web-Enrollment
# Configure une CA racine d'entreprise
Install-AdcsCertificationAuthority `
-CAType EnterpriseRootCA `
-CACommonName "CA-Entreprise" `
-KeyLength 4096 `
-HashAlgorithmName SHA256 `
-ValidityPeriod Years `
-ValidityPeriodUnits 10 `
-Force
# Fichier request.inf
$infContent = @"
[Version]
Signature = "`$Windows NT$"
[NewRequest]
Subject = "CN=intranet.domaine.local"
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
KeySpec = 1
KeyUsage = 0xa0
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
[RequestAttributes]
CertificateTemplate = WebServer
"@
$infContent | Out-File -FilePath C:\cert\request.inf -Encoding ASCII
# Génère la CSR, soumet et installe
certreq -new C:\cert\request.inf C:\cert\request.req
certreq -submit C:\cert\request.req C:\cert\certificat.cer
certreq -accept C:\cert\certificat.cer
# Exporte le certificat racine
certutil -ca.cert C:\cert\CA-Racine.cer
# Vérifie la santé de la CA
certutil -ping
# Liste les certificats émis
certutil -view -restrict "Disposition=20" -out "RequestID,CommonName,NotAfter"
# Certificats expirant dans 30 jours
$expiration = (Get-Date).AddDays(30)
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.NotAfter -lt $expiration } |
Select-Object Subject, NotAfter, Thumbprint |
Format-Table -AutoSize
# Renouveler un certificat
certreq -enroll -machine -q "WebServer"
# Révoquer un certificat compromis
# certutil -revoke <NuméroSérie> 1