Construire une PKI interne pas à pas
Aller à la navigation
Aller à la recherche
Portail > Mise en œuvre et exploitation
Cette page décrit la construction d'une PKI interne à deux niveaux (racine + émettrice), d'abord avec openssl pour comprendre chaque étape, puis avec des outils qui automatisent (cfssl, step-ca).
Cible
<mermaid> flowchart TB
R["Root CA
(auto-signée, hors ligne)"] --> I["Issuing CA
(intermédiaire)"] I --> L["Feuilles (serveurs, clients)"]
</mermaid>
(Schéma en Mermaid.)
Méthode openssl (pédagogique)
1. Racine auto-signée
openssl genrsa -out root.key 4096 openssl req -x509 -new -key root.key -sha256 -days 3650 \ -subj "/C=FR/O=Nexiat/CN=Nexiat Root CA" \ -addext "basicConstraints=critical,CA:TRUE" \ -addext "keyUsage=critical,keyCertSign,cRLSign" \ -out root.crt
2. Intermédiaire (CSR puis signature par la racine)
openssl genrsa -out int.key 4096 openssl req -new -key int.key \ -subj "/C=FR/O=Nexiat/CN=Nexiat Issuing CA" -out int.csr # Fichier d'extensions de l'intermédiaire (int_ext.cnf) # basicConstraints=critical,CA:TRUE,pathlen:0 # keyUsage=critical,keyCertSign,cRLSign openssl x509 -req -in int.csr -CA root.crt -CAkey root.key -CAcreateserial \ -days 1825 -sha256 -extfile int_ext.cnf -out int.crt
3. Certificat feuille
openssl genrsa -out clipsy.key 3072 openssl req -new -key clipsy.key -subj "/C=FR/O=Nexiat/CN=clipsy.tech" -out clipsy.csr # leaf_ext.cnf # basicConstraints=CA:FALSE # keyUsage=critical,digitalSignature,keyEncipherment # extendedKeyUsage=serverAuth # subjectAltName=DNS:clipsy.tech,DNS:www.clipsy.tech openssl x509 -req -in clipsy.csr -CA int.crt -CAkey int.key -CAcreateserial \ -days 90 -sha256 -extfile leaf_ext.cnf -out clipsy.crt
4. Assembler et vérifier la chaîne
cat clipsy.crt int.crt > fullchain.crt # feuille + intermédiaire, sans la racine openssl verify -CAfile root.crt -untrusted int.crt clipsy.crt
L'ordre et l'absence de racine dans le fullchain suivent les règles de Formats et encodage des certificats ; la validation applique Validation du chemin de certification.
Outils qui automatisent
| Outil | Apport |
|---|---|
| cfssl (CloudFlare) | Génération de CA et certificats pilotée par JSON ; pratique pour scripter une PKI interne. |
| step-ca (smallstep) | CA complète avec serveur ACME interne → émission automatisée comme Let's Encrypt, mais privée. |
| Vault PKI | CA dynamique, rôles, TTL courts, intégration cert-manager (Vault PKI). |
| EJBCA / Dogtag | CA d'entreprise, support HSM/PKCS#11, gestion avancée. |
Mise en production
- Clé racine en HSM, machine hors ligne ; ne signer que des intermédiaires et CRL.
- Déployer la racine dans les magasins de confiance des machines internes.
- Servir aux applications le fullchain (feuille + intermédiaire).
- Automatiser le renouvellement (Rotation et renouvellement automatisés).
- Publier CRL/OCSP et renseigner AIA/CDP (Extensions X.509, Révocation des certificats).
Points clés à retenir
- Deux niveaux : racine auto-signée hors ligne, intermédiaire qui émet.
- Les extensions (Basic Constraints, Key Usage, EKU, SAN) se posent explicitement à la signature.
- fullchain = feuille + intermédiaire, sans la racine ; racine à déployer dans les magasins.
- Passer d'openssl manuel à step-ca/Vault pour l'automatisation.