Cours
Code digicomp : PKITLS
PKI & automatisation des certificats
Description de la formation
Téléchargez au format PDF- Demander, émettre et gérer des certificats numériques avec Windows (ADCS), OpenSSL (linux) et automatiser leur renouvellement avec des clients ACME.
- Utiliser les certificats pour l'authentification et la signature avec cartes à puce (ouverture de session Windows, signature de PDF, Courriels via Outlook, Scripts PowerShell)
- Comprendre le fonctionnement des processus PKI, TLS et ACME, y compris les méthodes de validation HTTP-01, DNS-01 et TLS-ALPN-01
- Analyser et corriger les erreurs de certificats dans différents environnements (Windows, Linux, serveurs web)
- Sécuriser et tester une PKI d'entreprise : racine hors ligne sous Linux, intégration des subCA Enterprise dans ADCS, validation des CRL, protection des clés par HSM, extensions critiques des certificats, détection des failles ADCS classiques.
- Se préparer aux algorithmes Post-Quantums (ML-KEM, ML-DSA, SLH-DSA) pour 2030.
1. Créer des demandes de signature de certificat (CSR)
- Génération de clés RSA et ECDSA (P-256, P-384) et choix des tailles
- CSR avec OpenSSL : fichier de configuration, Subject, SAN (DNS, IP, UPN, e-mail)
- CSR sous Windows : certreq, fichiers INF, console MMC Certificats
- Demande d'extensions : keyUsage, extendedKeyUsage, basicConstraints
2. Convertir les formats de certificats
- Encodages PEM et DER
- Conteneurs PKCS#7 (chaînes) et PKCS#12/PFX (clé + certificat)
- Conversions, extraction de clé et réassemblage de chaîne avec OpenSSL et certutil
- Pièges courants : ordre de la chaîne, chiffrement des PFX, mot de passe d'export
3. Utiliser les certificats S/MIME
- Signature et chiffrement des e-mails dans Outlook
- Exigences des CA publiques (Baseline Requirements S/MIME)
- Archivage et récupération des clés de chiffrement (Key Recovery Agent)
4. Mettre en place et dépanner les certificats TLS
- Construction et validation de la chaîne de confiance
- Révocation : CRL, delta-CRL, OCSP, OCSP Stapling
- Validation des CRL : points de distribution (CDP) et AIA, signature de la CRL, dates thisUpdate / nextUpdate, cycle de publication de la CRL de la racine hors ligne
- Contrôle des CRL : openssl crl -verify, openssl verify -crl_check_all, certutil -URL, PKIView
- Diagnostic avec openssl s_client, openssl verify et certutil -verify -urlfetch
- Erreurs typiques : intermédiaire manquant, SAN absent, expiration, horloge, CRL expirée ou injoignable
5. Connaître la signature de code et l'horodatage
- Signature de scripts PowerShell (Set-AuthenticodeSignature) et de binaires (signtool)
- Horodatage RFC 3161 et validité de la signature après expiration du certificat
- Protection de la clé de signature : HSM ou jeton matériel obligatoire
6. Utilisation des cartes à puce
- Applet PIV de la YubiKey : emplacements 9a (authentification), 9c (signature), 9d (gestion de clés), 9e (authentification carte)
- Génération de la clé dans le jeton et attestation de clé (preuve de non-exportabilité)
- Gestion avec ykman et YubiKey Manager : PIN, PUK, clé de gestion, politiques de toucher
- Ouverture de session Windows par carte à puce (PKINIT / Kerberos) avec ADCS
- Signature de documents, d'e-mails S/MIME et de code avec la YubiKey
- Cycle de vie : distribution, renouvellement, perte, révocation
7. Utiliser et sécuriser les certificats avec Active Directory
- Architecture à deux niveaux : CA racine hors ligne sous Linux (OpenSSL seul) signant la CA émettrice ADCS Enterprise
- Protection des clés de CA par HSM (PKCS#11, KSP) et séparation des rôles
- Modèles de certificats : permissions, extensions critiques, contraintes de nom et de longueur de chemin
- Inscription pour le compte d'autrui (Enroll on Behalf Of) : agents d'inscription, restrictions d'agents, signatures d'autorisation
- Failles ADCS classiques : ESC1 (SAN fourni par le demandeur), ESC2 et ESC3 (EKU trop larges, agents d'inscription), ESC4 (ACL des modèles), ESC6 (EDITF_ATTRIBUTESUBJECTALTNAME2), ESC7 (droits sur la CA), ESC8 et ESC11 (relais NTLM vers l'inscription web et RPC)
- Certificats dans Microsoft 365 et Entra ID : authentification par certificat (CBA)
8. Automatiser avec ACME et Let's Encrypt
- Réduction de la durée de vie des certificats publics : 398 jours, puis 200 jours au 15 mars 2026, 100 jours au 15 mars 2027 et 47 jours au 15 mars 2029 ; la réutilisation de la validation de domaine tombe à 10 jours en 2029
- Conséquences opérationnelles : renouvellement toutes les 6 à 7 semaines, fin du renouvellement manuel, inventaire des certificats, supervision et alertes d'expiration
- Let's Encrypt : profils ACME (classic, tlsserver, shortlived de 6 jours)
- Protocole ACME (RFC 8555) : compte, commande, autorisation, finalisation
- Méthodes de validation : HTTP-01 (port 80), DNS-01 (enregistrement TXT, certificats wildcard), TLS-ALPN-01 (port 443), et DNS-PERSIST-01
- Choisir la méthode selon le contexte : serveurs internes, répartiteurs de charge, DNS délégué, les certificats TLS et les conteneurs
- Clients : certbot, acme.sh, win-acme, Posh-ACME
- ACME interne : step-ca ou passerelle ACME vers ADCS, External Account Binding (EAB)
- Enregistrements CAA et ACME Renewal Information (ARI) : renouvellement piloté par la CA
9. Connaître les commandes OpenSSL
- openssl genpkey, req, x509 : clés, CSR, certificats auto-signés
- Déploiement d'une CA racine hors ligne sous Linux avec OpenSSL seul : arborescence, openssl.cnf, index.txt, serial, crlnumber
- Signature de la CA subordonnée ADCS avec openssl ca et contrôle des extensions (basicConstraints critique, pathLenConstraint, keyUsage)
- Émission des CRL de la racine (openssl ca -gencrl) et sauvegarde sécurisée de la clé
- openssl x509 -text, asn1parse : lecture des extensions et de leur criticité
- openssl pkcs12, crl, ocsp : conteneurs et révocation
- openssl s_client, verify : test et dépannage des connexions TLS
Ce cours s'adresse aux administrateurs, ingénieurs sécurité et développeurs qui veulent apprendre, par des exemples concrets, à gérer des certificats, automatiser leur renouvellement et sécuriser une PKI d'entreprise.
Des connaissances détaillées des certificats X.509 sont impérativement requises. Une aisance en ligne de commande (Bash ou PowerShell) et des bases d'Active Directory sont recommandées pour les travaux pratiques.