4.8 KiB
title, description, tags, date, lastmod, type, category, status
| title | description | tags | date | lastmod | type | category | status | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Guide Complet : Créer sa propre Autorité de Certification (CA) avec OpenSSL |
|
2026-02-28 00:29 | 2026-02-28 00:36 |
|
|
brouillon |
Guide Complet : Créer sa propre Autorité de Certification (CA) avec OpenSSL
Dans un environnement de test, un laboratoire local ou un intranet, l'utilisation de certificats SSL "auto-signés" classiques pose souvent problème : les navigateurs affichent des alertes de sécurité rouges et bloquent l'accès.
La solution professionnelle consiste à devenir votre propre Autorité de Certification. En créant une "Racine de confiance" et en l'installant sur vos appareils, tous les certificats que vous générerez ensuite seront instantanément reconnus comme valides et sécurisés.
1. Création de l'Autorité de Certification (La Racine)
C'est votre "passeport maître". Une fois généré, vous devrez installer le fichier ma-ca.crt dans les "Autorités de certification racines de confiance" de vos ordinateurs ou navigateurs.
Générer la clé privée de l'AC
Cette clé est le cœur de votre sécurité. Gardez-la précieusement et ne la partagez jamais.
openssl genrsa -out ma-ca.key 4096
Générer le certificat de l'AC (Self-Signed)
Ce certificat est valable 10 ans. C'est lui que vous distribuerez à vos clients (PC, serveurs, mobiles).
openssl req -x509 -new -nodes -key ma-ca.key -sha256 -days 3650 -out ma-ca.crt \
-subj "/C=FR/ST=Paris/L=Paris/O=MonLabo/CN=Mon AC Locale"
2. Configuration SAN (Subject Alternative Name)
Depuis quelques années, les navigateurs modernes (Chrome, Firefox, Edge) rejettent les certificats qui n'utilisent que le simple "Common Name" (CN). Il est désormais impératif d'utiliser une extension SAN pour lister vos domaines explicitement.
Créez un fichier nommé domaines.ext et collez-y la configuration suivante :
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = acegrp.lan
DNS.2 = *.acegrp.lan
DNS.3 = abonnel.fr
DNS.4 = a5l.fr
DNS.5 = localhost
3. Génération du Certificat pour vos domaines
Nous allons maintenant créer un certificat serveur signé par votre propre AC.
Étape A : Créer la clé privée du serveur
openssl genrsa -out monserveur.key 2048
Étape B : Créer la demande de signature (CSR)
Le CSR est une requête officielle contenant vos informations d'identité.
openssl req -new -key monserveur.key -out monserveur.csr \
-subj "/C=FR/ST=Paris/L=Paris/O=MonLabo/CN=acegrp.lan"
Étape C : Signer le certificat avec votre AC
C'est ici que la magie opère : vous utilisez votre clé racine pour valider le certificat du serveur.
openssl x509 -req -in monserveur.csr -CA ma-ca.crt -CAkey ma-ca.key \
-CAcreateserial -out monserveur.crt -days 825 -sha256 -extfile domaines.ext
Note de sécurité : Nous limitons la validité à 825 jours (environ 2 ans). Les navigateurs récents refusent les certificats serveurs ayant une durée de vie trop longue pour des raisons de sécurité.
4. Récapitulatif des fichiers obtenus
| Fichier | Rôle | Action requise |
|---|---|---|
| ma-ca.crt | Certificat Racine | À importer sur vos PC/Mobiles (Root Store). |
| monserveur.crt | Certificat Serveur | À installer sur Nginx, Apache ou IIS. |
| monserveur.key | Clé privée Serveur | À installer sur le serveur (Garder secret !). |
5. Mise en place pratique (Exemple Nginx)
Pour que vos sites soient reconnus sans erreur, configurez votre bloc server ainsi :
server {
listen 443 ssl;
server_name acegrp.lan abonnel.fr a5l.fr;
ssl_certificate /etc/nginx/ssl/monserveur.crt;
ssl_certificate_key /etc/nginx/ssl/monserveur.key;
# Paramètres de sécurité recommandés
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
}
Astuces de déploiement "Pro"
-
Sur Windows (Parc informatique) : Utilisez une GPO (Stratégie de groupe) pour déployer
ma-ca.crtautomatiquement dans le magasin "Autorités de certification racines de confiance" de tous les postes du domaine. -
Sur Linux (Ubuntu/Debian) : Pour que votre système fasse confiance à votre AC en ligne de commande (ex: pour
curl), copiez le fichier dans/usr/local/share/ca-certificates/et lancez la commande :sudo update-ca-certificates -
Sur Android/iOS : Envoyez-vous le fichier
.crtpar email et ouvrez-le pour l'installer dans les réglages de confiance du profil.
à suivre : script Bash pour automatiser entièrement la génération et le renouvellement de ces certificats.