vault backup: 2026-02-28 00:41:38
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
---
|
||||
title: "Guide Complet : Créer sa propre Autorité de Certification (CA) avec OpenSSL"
|
||||
description:
|
||||
tags: [openssl, certification, ac, san]
|
||||
date: 2026-02-28 00:29
|
||||
lastmod: 2026-02-28 00:36
|
||||
type:
|
||||
- article
|
||||
category:
|
||||
- "[[Guide]]"
|
||||
status: 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.
|
||||
|
||||
```bash
|
||||
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 :
|
||||
|
||||
```toml
|
||||
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
|
||||
|
||||
```bash
|
||||
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é.
|
||||
|
||||
```bash
|
||||
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.
|
||||
|
||||
```bash
|
||||
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 :
|
||||
|
||||
```nginx
|
||||
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.crt` automatiquement 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 `.crt` par 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.
|
||||
Reference in New Issue
Block a user