Aller au contenu

Certificats

Tout ce qui concerne TLS/SSL, PKI, certificats X.509, et leur gestion concrète derrière un reverse proxy Traefik sur des machines Linux. Le sujet couvre aussi le mTLS, la révocation, les formats de stockage, et la distribution sur tous les OS.

Parcours suggéré

Si tu débutes sur le sujet, lis les notions dans l'ordre avant d'attaquer les méthodes :

  1. Cryptographie asymétrique — la primitive de base
  2. Certificats X.509 — le format universel
  3. Chaîne de confiance & PKI — pourquoi un certificat est "valide"
  4. Le handshake TLS — ce qui se passe quand un client se connecte
  5. ACME & Let's Encrypt — l'automatisation moderne

Pour aller plus loin une fois les bases acquises :

  1. Formats de certificats — PEM, DER, PKCS#12, JKS
  2. SAN et wildcards — la version approfondie
  3. Révocation — CRL, OCSP, et l'état en 2026
  4. mTLS — authentification mutuelle

Fiches notions

Fiche À comprendre avant de…
01 — Cryptographie asymétrique Générer une clé, comprendre .key vs .crt
02 — Certificats X.509 Lire un certificat, comprendre CN/SAN
03 — Chaîne de confiance & PKI Créer une CA interne, debug "untrusted certificate"
04 — Handshake TLS Debug openssl s_client, comprendre les erreurs TLS
05 — ACME & Let's Encrypt Configurer un certresolver Traefik
06 — Formats de certificats Convertir entre PEM/DER/PKCS#12, distribuer sur un appareil
07 — SAN et wildcards (approfondi) Concevoir un cert multi-domaines ou wildcard correctement
08 — Révocation : CRL, OCSP, 2026 Décider de la stratégie de durée de vie + révocation
09 — mTLS Mettre en place une authentification client par cert

Fiches méthodes

Avec OpenSSL

Méthode Cas d'usage
Générer un certificat auto-signé Service interne sans nom de domaine public, test rapide
Créer sa propre CA interne Émettre plusieurs certificats reconnus par tous les hôtes du réseau
Émettre un certificat via sa CA interne Workflow CSR → signature, certs serveur ou client (mTLS)
Inspecter et valider un certificat Lire, vérifier, diagnostiquer un cert local ou distant
Convertir un cert entre formats PEM ↔ DER ↔ PKCS#12 ↔ JKS pour adapter à la cible

Sur Linux et autres OS

Méthode Cas d'usage
Ajouter une CA au trust store Linux Faire reconnaître une CA interne par curl, git, Docker, etc.
Trust stores Windows, macOS, iOS, Android Distribuer une CA interne ou un cert client sur tous les OS

Avec Traefik

Méthode Cas d'usage
Let's Encrypt avec DNS challenge & wildcard Couvrir *.example.com en un seul certificat
Let's Encrypt avec HTTP challenge Setup simple, port 80 ouvert, pas de wildcard nécessaire
Servir un certificat statique (fileProvider) Utiliser un certificat émis par une CA interne ou un fournisseur tiers
Configurer mTLS dans Traefik Protéger un endpoint par authentification cryptographique du client
Forcer le renouvellement d'un certificat Test, suspicion de compromission, changement de SAN
Diagnostiquer un acme.json cassé Certificats qui ne se génèrent plus, erreurs de challenge

À ajouter plus tard

Le sujet est désormais couvert dans ses fondamentaux et ses extensions. Pour les futures itérations :

  • Certificate Transparency monitoring (méthode avec outils comme Cert Spotter)
  • Cert pinning côté applicatif (notion)
  • DANE et DNSSEC pour TLS (notion + méthode)
  • Plugins Traefik / CrowdSec pour la détection d'anomalies TLS (méthode)