Pourquoi mettre en place une PKI interne ?
Mettre en place une PKI interne permet :
- d’émettre ses propres certificats
- de maîtriser leur durée de vie
- d’automatiser leur renouvellement
- de supprimer les certificats auto-signés non maîtrisés
Par contre, il faudra prévoir d’e configurer ‘ajouter le certificat de l’autorité de certification sur chaque client.
Dans cet article, nous allons voir comment déployer une autorité de certification interne avec step-ca.
Pourquoi utiliser step-ca ?
Smallstep step-ca est une autorité de certification open source développée par Smallstep.
Avantages :
- Installation simple
- Compatible ACME (comme Let’s Encrypt)
- Gestion d’identités X.509 et SSH
- API REST
- Intégration facile avec des scripts et outils d’automatisation
- Support du renouvellement automatique
Architecture recommandée
Une PKI interne minimale comprend :
- 1 CA root (idéalement offline)
- 1 CA intermédiaire (utilisée pour signer les certificats)
- 1 serveur step-ca
- 1 mécanisme de distribution du certificat root vers les clients
En environnement simple (lab ou PME), on peut commencer avec une seule CA hébergée sur un serveur sécurisé.
Installation de step-ca (exemple sous Debian 12)
1️⃣ Installation
On trouve la documentation ici : https://smallstep.com/docs/step-ca/installation/#debianubuntu
root@debian-pki:/home/bob# apt-get update && apt-get install -y --no-install-recommends curl gpg ca-certificates
Atteint : 1 http://deb.debian.org/debian trixie InRelease
Atteint : 2 http://deb.debian.org/debian trixie-updates InRelease
Atteint : 3 http://security.debian.org/debian-security trixie-security InRelease
Lecture des listes de paquets... Fait
Lecture des listes de paquets... Fait
oot@debian-pki:/home/bob# curl -fsSL https://packages.smallstep.com/keys/apt/repo-signing-key.gpg -o /etc/apt/keyrings/smallstep.asc
cat << EOF > /etc/apt/sources.list.d/smallstep.sources
Types: deb
URIs: https://packages.smallstep.com/stable/debian
Suites: debs
Components: main
Signed-By: /etc/apt/keyrings/smallstep.asc
EOF
apt-get update && apt-get -y install step-cli step-ca
Vérification :
oot@debian-pki:/home/bob# step version
Smallstep CLI/0.29.0 (linux/amd64)
Release Date: 2025-12-03T04:11:27Z
2️⃣ Initialisation de la PKI
root@debian-pki:/home/bob# step ca init
✔ Deployment Type: Standalone
What would you like to name your new PKI?
✔ (e.g. Smallstep): pki-lab
What DNS names or IP addresses will clients use to reach your CA?
✔ (e.g. ca.example.com[,10.1.2.3,etc.]): debian-dns.local.lab
What IP and port will your new CA bind to? (:443 will bind to 0.0.0.0:443)
✔ (e.g. :443 or 127.0.0.1:443): :443
What would you like to name the CA's first provisioner?
✔ (e.g. you@smallstep.com): bob@local.lab█
Choose a password for your CA keys and first provisioner.
✔ [leave empty and we'll generate one]: █
Generating root certificate... done!
Generating intermediate certificate... done!
✔ Root certificate: /root/.step/certs/root_ca.crt
✔ Root private key: /root/.step/secrets/root_ca_key
✔ Root fingerprint: ac47a133dcde6405d37f1ad87e3cb84e58dbaa54b9a825a99bf7cf4b25558f61
✔ Intermediate certificate: /root/.step/certs/intermediate_ca.crt
✔ Intermediate private key: /root/.step/secrets/intermediate_ca_key
✔ Database folder: /root/.step/db
✔ Default configuration: /root/.step/config/defaults.json
✔ Certificate Authority configuration: /root/.step/config/ca.json
Your PKI is ready to go. To generate certificates for individual services see 'step help ca'.
L’assistant va demander :
- Nom de la CA
- Nom DNS du serveur
- Adresse IP
- Mot de passe de protection de la clé privée
À la fin, tu obtiens :
- root_ca.crt
- intermediate_ca.crt
- fichiers de configuration
3️⃣ Démarrage du service
root@debian-pki:~# step-ca .step/config/ca.json
badger 2026/02/18 18:40:05 INFO: All 0 tables opened in 0s
Please enter the password to decrypt /root/.step/secrets/intermediate_ca_key:
2026/02/18 18:40:13 Building new tls configuration using step-ca x509 Signer Interface
2026/02/18 18:40:14 Starting Smallstep CA/0.29.0 (linux/amd64)
2026/02/18 18:40:14 Documentation: https://u.step.sm/docs/ca
2026/02/18 18:40:14 Community Discord: https://u.step.sm/discord
2026/02/18 18:40:14 Config file: .step/config/ca.json
2026/02/18 18:40:14 The primary server URL is https://debian-dns.local.lab:443
2026/02/18 18:40:14 Root certificates are available at https://debian-dns.local.lab:443/roots.pem
2026/02/18 18:40:14 X.509 Root Fingerprint: ac47a133dcde6405d37f1ad87e3cb84e58dbaa54b9a825a99bf7cf4b25558f61
2026/02/18 18:40:14 Serving HTTPS on :443 ...
Ou via systemd.
Émission d’un certificat
Exemple pour un serveur interne :
step ca certificate srv-web01.infra.local srv-web01.crt srv-web01.key
Le certificat est signé par la CA interne.
Tu peux ensuite l’installer dans :
- Nginx
- Apache
- HAProxy
- Interface d’administration d’un firewall
- Reverse proxy
Activation du protocole ACME
L’un des gros avantages de step-ca est le support natif d’ACME.
Cela permet :
- d’utiliser Certbot
- d’automatiser le renouvellement
- d’éviter toute gestion manuelle
Exemple de configuration ACME :
{
"type": "ACME",
"name": "acme"
}
Ensuite, un serveur peut demander son certificat automatiquement via ACME interne.
Distribution du certificat root
Point critique : tous les clients doivent faire confiance à la CA interne.
Sur Linux :
cp root_ca.crt /usr/local/share/ca-certificates/
update-ca-certificates
Sur Windows : via GPO
Sur équipements réseau : import manuel du certificat root.
Cas d’usage concrets
En environnement réseau/sécurité (comme le tien), une PKI interne permet :
- HTTPS sur interfaces d’administration de firewalls
- TLS sur serveurs internes
- Authentification mutuelle VPN
- Wi-Fi entreprise (EAP-TLS)
- Signature de certificats pour API internes
- Certificats courts pour renforcer la sécurité
Bonnes pratiques de sécurité
- Protéger la clé privée de la CA
- Sauvegarder les clés hors ligne
- Conserver la root CA offline si possible
- Utiliser des certificats courts (30 à 90 jours)
- Automatiser le renouvellement
- Mettre en place une CRL ou OCSP si nécessaire
Conclusion
Mettre en place une PKI interne n’est plus réservé aux grandes entreprises.
Avec Smallstep step-ca, il est possible de :
- déployer une autorité de certification en quelques minutes
- automatiser totalement l’émission
- sécuriser l’ensemble de l’infrastructure interne