Une Certificate Signing Request (CSR) est un message formaté et signé numériquement qui contient votre clé publique et vos informations d'identité (nom de domaine, organisation, pays) mais pas votre clé privée. Vous l'envoyez à une autorité de certification pour demander un certificat SSL.
La CSR prouve que vous contrôlez la clé privée correspondante par une auto-signature—l'AC vérifie cette signature pour confirmer que vous contrôlez la clé. Le format standard est PKCS#10 (RFC 2986), généralement encodé en format PEM avec les délimiteurs -----BEGIN CERTIFICATE REQUEST----- et -----END CERTIFICATE REQUEST-----.
Fonctionnement :
- Vous générez localement une paire clé privée/publique (RSA, ECDSA ou Ed25519)—la clé privée ne quitte jamais votre système.
- Vous créez une CSR contenant votre clé publique, nom de domaine (Common Name ou Subject Alternative Names), organisation et pays.
- Vous signez la CSR avec votre clé privée comme preuve que vous la contrôlez.
- Vous soumettez la CSR à une AC (via formulaire web, API ou protocole ACME utilisé par Let's Encrypt).
- L'AC valide le contrôle de votre domaine, vérifie la signature CSR et émet un certificat liant sa confiance à votre clé publique.
Exemple (OpenSSL) :
openssl req -new -newkey rsa:2048 -nodes \
-keyout example.com.key -out example.com.csr \
-subj "/CN=example.com/O=Example Inc/C=US"
Ceci crée example.com.key (clé privée—à protéger) et example.com.csr (le fichier de demande à envoyer à votre AC).
WarningNe partagez jamais votre clé privée. Seule la CSR (ou le certificat émis) est sûre à envoyer à l'AC. Si vous perdez la clé, vous ne pouvez pas déchiffrer le trafic ou renouveler le certificat sans générer une nouvelle CSR.