Un certificat auto-signe est un certificat que vous creez vous-meme — vous agissez comme votre propre Autorite de Certification. Un certificat signe par une CA est emis et signe par une Autorite de Certification de confiance (comme Let’s Encrypt ou DigiCert) a laquelle les navigateurs font deja confiance.
La difference pratique : les certificats auto-signes declenchent des avertissements de securite dans le navigateur. Les certificats signes par une CA non.
Comparaison
| Auto-signe | Signe par une CA | |
|---|---|---|
| Cree par | Vous (commande openssl) | Une CA de confiance |
| Confiance du navigateur | Avertissement : “Non approuve” | Icone de cadenas |
| Force du chiffrement | Identique | Identique |
| Cout | Gratuit | Gratuit (Let’s Encrypt) ou payant |
| Validation | Aucune — vous vous portez garant de vous-meme | La CA verifie le domaine/l’organisation |
| Cas d’utilisation | Developpement, interne, tests | Sites web en production |
| Renouvellement | Manuel (vous definissez la validite) | 90 jours (LE) ou 1 an (payant) |
| Protection contre le man-in-the-middle | Faible — les utilisateurs sont habitues a ignorer les avertissements | Forte — les avertissements n’apparaissent que pour de vrais problemes |
Pourquoi les certificats auto-signes affichent des avertissements
Les navigateurs font confiance aux certificats en fonction de qui les a signes. Votre systeme d’exploitation et votre navigateur sont livres avec une liste de ~100-150 CA racines de confiance. Lorsqu’un serveur presente un certificat signe par l’une de ces CA, le navigateur affiche un cadenas.
Un certificat auto-signe n’est signe par aucune CA de confiance — il est signe par sa propre cle privee. Le navigateur n’a aucun moyen de verifier que le certificat est legitime, il affiche donc un avertissement. C’est le comportement correct — sans verification par une CA, n’importe qui pourrait creer un certificat pretendant etre google.com.
Quand utiliser des certificats auto-signes
Services internes
Services non exposes a Internet — tableaux de bord internes, outils de surveillance, panneaux d’administration de base de donnees. Votre equipe peut ajouter la CA auto-signee a ses magasins de confiance.
Developpement et tests
HTTPS rapide pour le developpement local lorsque vous ne voulez pas configurer mkcert. L’avertissement du navigateur est ennuyeux mais fonctionnel pour les tests.
IoT et appareils embarques
Appareils qui communiquent avec un serveur connu et peuvent epingler le certificat — aucun magasin de confiance de navigateur implique.
Reseaux isoles (air-gapped)
Reseaux sans acces a Internet ou le protocole ACME de Let’s Encrypt ne peut pas etre atteint. L’auto-signe est la seule option.
Quand NE PAS utiliser de certificats auto-signes
Tout site web accessible au public
Les utilisateurs voient un avertissement effrayant et quittent la page. Les moteurs de recherche peuvent ne pas explorer les pages HTTPS avec des certificats non approuves. Il n’y a aucune raison de signer soi-meme quand les certificats Let’s Encrypt sont gratuits.
Tout site traitant des donnees utilisateurs
Les certificats auto-signes habituent les utilisateurs a ignorer les avertissements de securite — le contraire d’une bonne securite. Lorsqu’une veritable attaque declenche un avertissement, les utilisateurs habitues a cliquer sur “Continuer quand meme” ne le remarqueront pas.
Comment creer un certificat auto-signe
# ECDSA (recommande)
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout key.pem -out cert.pem -days 365 -nodes \
-subj "/CN=internal.example.com" \
-addext "subjectAltName=DNS:internal.example.com,IP:10.0.0.5"
# RSA
openssl req -x509 -newkey rsa:2048 \
-keyout key.pem -out cert.pem -days 365 -nodes \
-subj "/CN=internal.example.com"
Utilisez les fichiers cert.pem et key.pem resultants dans la configuration de votre serveur. Note : fullchain.pem et chain.pem ne sont pas necessaires — il n’y a pas de chaine avec les certificats auto-signes.
Meilleures alternatives pour chaque scenario
| Scenario | Au lieu de l’auto-signe, utilisez |
|---|---|
| Site web en production | Let’s Encrypt via GetHTTPS — gratuit, approuve, 5 minutes |
| Developpement local | mkcert — approuve localement, pas d’avertissements |
| Services internes | Let’s Encrypt (si accessible par Internet) ou une CA privee |
| Tests/staging | Environnement de staging Let’s Encrypt — certificats de test illimites |
Les certificats auto-signes avaient du sens quand les certificats SSL coutaient plus de 100 $/an. Maintenant que Let’s Encrypt est gratuit, il y a rarement une raison de signer soi-meme pour autre chose que des environnements veritablement isoles.
Questions frequemment posees
Un certificat auto-signe est-il moins securise qu’un certificat signe par une CA ?
Le chiffrement est identique — memes algorithmes, memes forces de cle. La difference est la confiance : un certificat signe par une CA prouve l’identite du serveur via un tiers de confiance. Un certificat auto-signe ne prouve rien — n’importe qui peut en creer un pour n’importe quel domaine. Le probleme de securite n’est pas la cryptographie ; c’est l’absence d’authentification.
Puis-je faire en sorte que les navigateurs fassent confiance a mon certificat auto-signe ?
Oui, sur les machines que vous controlez. Importez le certificat (ou une CA auto-signee qui l’a signe) dans le magasin de confiance du systeme d’exploitation/navigateur. C’est ce que mkcert automatise. Mais vous ne pouvez pas faire en sorte que les navigateurs d’autres personnes lui fassent confiance — cela necessite une vraie CA.
Mon hebergeur m’a donne un certificat auto-signe. Est-ce acceptable ?
Non, pour un site web public. Demandez a votre hebergeur d’activer Let’s Encrypt gratuit (la plupart des hebergeurs le prennent en charge). Si ce n’est pas le cas, utilisez GetHTTPS pour obtenir vous-meme un certificat de confiance.
Pourquoi ne pas simplement creer ma propre CA ?
Vous le pouvez, mais les navigateurs ne lui feront pas confiance a moins que vous ne passiez par le processus long et couteux d’integration aux magasins de confiance des navigateurs. Une CA privee fonctionne pour l’infrastructure interne (votre equipe installe le certificat racine), mais pas pour les sites web publics. Pour les sites publics, utilisez une CA de confiance comme Let’s Encrypt.