Construire une PKI interne pas à pas

De wiki.nexiat.fr
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

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.

Voir aussi