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 :
- Cryptographie asymétrique — la primitive de base
- Certificats X.509 — le format universel
- Chaîne de confiance & PKI — pourquoi un certificat est "valide"
- Le handshake TLS — ce qui se passe quand un client se connecte
- ACME & Let's Encrypt — l'automatisation moderne
Pour aller plus loin une fois les bases acquises :
- Formats de certificats — PEM, DER, PKCS#12, JKS
- SAN et wildcards — la version approfondie
- Révocation — CRL, OCSP, et l'état en 2026
- 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)