Générateur de CSR
Créez une demande de signature de certificat et la clé privée qui l'accompagne, ici même, sur cette page. La paire de clés est générée par le Web Crypto de votre navigateur et ne quitte jamais votre ordinateur : rien de ce que vous saisissez, aucune clé, n'est envoyé à notre serveur ni à un autre.
Un par ligne. Le premier devient aussi le nom commun.
Le choix raisonnable par défaut : aussi solide que RSA 3072, et bien plus petite.
La dénomination légale de votre organisation, telle qu'elle est enregistrée.
Écrivez-le en toutes lettres plutôt que de l'abréger.
Deux lettres, le code ISO 3166-1.
Deux lettres, le code ISO 3166-1.
Ce qu'il faut demanderUne AC publique les définit selon son propre profil. Une AC privée peut vouloir qu'on les demande.
Seulement si votre AC vous en a demandé un. L'inscription SCEP l'utilise ; une commande de certificat web, non.
La paire est créée par votre navigateur et n'est envoyée nulle part.
Ce que vous allez envoyerECDSA P-256 · SHA-256
Saisissez un nom ou essayez un exemple : cette colonne montre ce qu'une autorité de certification ferait de la demande, avant même qu'elle soit générée.
La paire de clés est créée par le Web Crypto de votre navigateur, dans un cadre qui ne peut se connecter nulle part, et n'est jamais envoyée. Ouvrez votre panneau réseau et observez.
Qu'est-ce qu'un générateur de CSR ?
Il crée deux fichiers : une demande de signature de certificat à envoyer à une autorité de certification, et la clé privée qui reste chez vous. La demande contient votre clé publique et les noms que vous voulez faire certifier, le tout signé par la clé privée.
Le format est PKCS#10, défini dans la RFC 2986. La demande contient un nom de sujet, votre clé publique, un ensemble d'attributs qui portent les noms alternatifs, et une signature faite avec votre clé privée sur l'ensemble. Cette auto-signature est la preuve de possession : elle montre que l'expéditeur détient la clé pour laquelle le certificat sera émis.
Les deux fichiers ne sont pas interchangeables. La demande est faite pour être envoyée — à une AC, dans un ticket de support, n'importe où. La clé privée, jamais. Sur cette page, la clé est créée et conservée dans votre navigateur. Il faut tout de même faire confiance au code de la page, comme pour tout outil web, mais vous pouvez vérifier ce qu'il envoie : ouvrez votre panneau réseau et observez pendant que vous en générez une.
La clé privéeÀ conserver
-----BEGIN PRIVATE KEY------ La moitié privéeSigne la demande maintenant, puis chaque connexion à votre serveur par la suite
- Sa moitié publiqueCopiée dans la demande
Un seul exemplaire, sur votre ordinateur
La demande de signature de certificatÀ envoyer
-----BEGIN CERTIFICATE REQUEST------ Nom du sujet108 octetsFacultatif pour la plupart des certificats
- Votre clé publique294 octetsLe seul champ qu'une autorité de certification utilise à coup sûr
- Les noms demandés60 octetsLes noms alternatifs, portés par un attribut
- La signature261 octetsFaite par la clé privée, sur tout ce qui précède
Elle ne contient aucun secret

Les nomsLes noms d'hôte que le certificat doit couvrir. Le premier devient le nom commun ; les autres le rejoignent.La cléRSA ou une courbe elliptique. La paire est créée par votre navigateur, sous vos yeux.Qui vous êtesLes champs du sujet. Une AC publique les valide elle-même, si bien que seuls quelques-uns subsistent.Les deux fichiersLa demande à envoyer, et la clé privée à conserver. La clé n'existe que dans votre navigateur tant que vous ne l'avez pas enregistrée.La même chose, en commandeLa ligne OpenSSL qui génère exactement cette demande, si vous préférez le faire vous-même.Pourquoi générer la clé dans votre navigateur ?
Parce qu'une clé privée qui arrive sur le serveur de quelqu'un d'autre répond à la définition même du secteur d'une clé compromise, quoi que ce serveur en fasse ensuite.
Les Baseline Requirements du CA/Browser Forum la définissent sans laisser de place à la discussion : « Une clé privée est considérée comme compromise si sa valeur a été divulguée à une personne non autorisée, ou si une personne non autorisée y a eu accès. » Aucun mésusage n'est nécessaire. L'arrivée suffit.
Ce n'est pas théorique. En 2020, DigiCert a trouvé 337 clés privées que des clients avaient collées à côté de leur demande, a révoqué tous les certificats concernés et l'a signalé publiquement : « en envoyant la clé privée à DigiCert avec le CSR, le client a compromis la clé privée », en ajoutant que « la seule partie d'un CSR que nous utilisons est la clé publique ». Un générateur qui crée la clé sur son propre serveur et vous en remet une copie l'a, selon cette définition, déjà compromise. Cette page ne peut pas faire cela : crypto.subtle.generateKey s'exécute dans votre navigateur, dans un cadre isolé qui n'a le droit de se connecter nulle part, et la page autour n'en voit que la clé publique.
Cette page
- Web Crypto crée la paire de clés
crypto.subtle.generateKey - La clé signe la demande
- Vous sauvegardez les deux fichiers
La clé n'a jamais existé que sur votre ordinateur
Un générateur qui crée la clé sur son serveur
- Vos noms et vos informations partent vers le serveur
- Le serveur crée la paire de clés
- La clé privée vous est renvoyée
Compromise par définition, avant que quoi que ce soit soit installé
« Une clé privée est considérée comme compromise si sa valeur a été divulguée à une personne non autorisée, ou si une personne non autorisée y a eu accès. »
C'est déjà arrivéEn 2020, une autorité de certification a trouvé 337 clés privées envoyées à côté de demandesTous les certificats concernés ont été révoqués
Comment créer un CSR
Saisissez les noms d'hôte, choisissez un type de clé et appuyez sur le bouton. Tout le reste est facultatif : un certificat moderne s'identifie par ses noms alternatifs, pas par son sujet.
Mettez dans le champ des noms tous ceux que le certificat doit couvrir : example.com, www.example.com, un wildcard comme *.api.example.com, ou une adresse IP. Le premier devient aussi le nom commun : lorsqu'un certificat a un nom commun, les Baseline Requirements exigent qu'il reprenne exactement l'un des noms alternatifs.
Le pays, l'organisation et la localité ne comptent que pour un certificat à validation d'organisation ou à validation étendue, et même alors l'AC doit les valider elle-même avant qu'ils entrent dans un certificat. Pour un certificat à validation de domaine — celui qu'émet Let's Encrypt — les seuls champs du sujet que les règles autorisent sont le pays et le nom commun. Le générateur signale les deux champs qu'une AC publique supprime ou interdit, l'unité organisationnelle et l'adresse e-mail, et la colonne à côté du formulaire montre ce qui changerait.
Saisissez les noms
Chaque hôte que le certificat doit couvrir ; le premier devient le nom communChoisissez un type de clé
P-256, sauf si un équipement ancien doit la lireGénérer la demande
Votre navigateur crée la clé et signe la demande avec elleRécupérez les deux fichiers
Envoyez la demande à votre autorité de certification ; conservez la clé
Quel type de clé choisir ?
ECDSA P-256 pour tout ce qui est nouveau : elle est aussi solide qu'une clé RSA de 3072 bits, bien plus petite, et autorisée par les règles que suit toute autorité de certification publique. RSA 2048 quand un ancien équipement doit lire la clé.
Le NIST place P-256 et RSA-3072 à la même force de sécurité de 128 bits, et ne donne aucune force propre à RSA-4096 : le palier suivant de son tableau est de 7680 bits. Une clé de 4096 bits impose donc à chaque visiteur un travail de négociation supplémentaire, sans gain documenté. P-384 est le palier de 192 bits, et les Baseline Requirements autorisent aussi P-521, mais Let's Encrypt refuse P-521 : une demande peut être parfaitement légale et échouer quand même chez l'AC que vous comptiez utiliser.
Ed25519 est proposée ici parce qu'elle est excellente pour SSH, pour la signature et pour une AC privée — mais aucune autorité de certification publique n'émettra de certificat TLS pour cette clé. Les règles listent RSA et les trois courbes du NIST, puis précisent qu'« aucun autre algorithme ni taille de clé n'est autorisé ». Il en va de même pour ML-DSA, post-quantique : le vote qui l'aurait permis en TLS public a été clos sans être adopté en octobre 2026. Le générateur l'indique à côté de chaque choix plutôt que de vous laisser l'apprendre par un e-mail de refus.
| 112 bits | 128 bits | 192 bits | 256 bits | |
|---|---|---|---|---|
| RSA | 2048 | 3072 | 7680 | 15360 |
| RSA 4096 | 4096 | |||
| ECDSA | — | P-256 | P-384 | P-521 |
4096 bits : aucun palier propre Le tableau passe directement d'une taille à la suivante : le travail de négociation supplémentaire n'achète rien de documenté
Ed25519Aucune autorité de certification publique n'émet pour cette clé
ML-DSAPost-quantique : le vote qui l'aurait permis a été clos sans être adopté en octobre 2026
- La même force
- Proposée ici
- Dans le tableau, non proposée ici
- Acceptée parLet's Encrypt
Que mettre dans chaque champ
Les noms : chaque hôte que le certificat couvre. Le pays : deux lettres. L'organisation : votre dénomination légale, pour un certificat OV ou EV. Tout le reste est facultatif, et une partie est désormais interdite.
L'unité organisationnelle est interdite. Selon le vote SC047 du CA/Browser Forum, aucun certificat TLS public émis depuis le 1er septembre 2022 ne peut contenir OU ; une AC le supprime plutôt que de refuser la commande. Une adresse e-mail dans le sujet n'est pas non plus permise sur un certificat à validation de domaine, et elle est déconseillée sur les autres. Ce générateur propose quand même ces deux champs, pour les AC privées, et les signale.
Le pays est un code ISO 3166-1 alpha-2 — US, DE, GB, IN — et non un nom de pays, ni un code à trois lettres. L'État ou la province doit s'écrire en toutes lettres plutôt qu'abrégé. Pour un certificat à validation étendue, il faut aussi la juridiction d'immatriculation et le numéro d'immatriculation, que ce générateur propose.
| Dans votre demande | DVValidation de domaine | OVValidation d'organisation | EVValidation étendue |
|---|---|---|---|
Nom communCN | |||
PaysC | |||
OrganisationO | |||
Ville, État ou provinceL, ST | |||
Rue, code postalstreet, postalCode | |||
Unité organisationnelleOUInterdite depuis le 1 septembre 2022 | |||
Adresse e-mailemailAddress | |||
Numéro d'immatriculation, catégorie d'activité, juridictionserialNumber, businessCategory, jurisdictionC |
- Sur le certificat, tel que l'AC l'a validé
- Autorisé, mais déconseillé
- Absent de ce type de certificat
- Jamais autorisé
Puis-je réutiliser une clé ou un CSR ?
Vous le pouvez — rien ne l'interdit — mais une clé neuve pour chaque certificat coûte une seconde et limite ce qu'une seule clé divulguée peut atteindre.
Les Baseline Requirements sont explicites : « une demande de certificat PEUT suffire pour plusieurs certificats émis au même demandeur », réutiliser une demande pour renouveler est donc permis. Le coût apparaît quand quelque chose tourne mal. Si cette clé est un jour compromise, tous les certificats qui la portent doivent être révoqués dans les 24 heures, pas seulement celui qui vous inquiétait.
Et une clé compromise est définitivement grillée : une AC « DOIT rejeter une demande de certificat » si on lui a signalé que la clé a été compromise, si bien que cette clé ne pourra plus jamais être certifiée par une AC qui en a été informée. Avec des durées de certificat qui tombent à 47 jours en 2029, une clé réutilisée signerait pendant des années, au fil de dizaines de renouvellements. En générer une nouvelle prend une seconde.
Une clé, réutilisée
www.example.comapi.example.commail.example.com
3 certificats révoqués dans les 24 heures
Et la clé ne pourra plus jamais être certifiée par une AC qui en a été informée
Une nouvelle clé pour chacun
www.example.comapi.example.comIntactmail.example.comIntact
1 certificat révoqué dans les 24 heures
Que se passe-t-il après l'envoi du CSR
L'AC valide les noms, ignore l'essentiel du reste, et renvoie un certificat. Conservez la clé privée : sans elle, vous ne pouvez pas installer le certificat.
La validation porte sur les noms, pas sur le fichier : un enregistrement DNS, un fichier sur le serveur web, ou un e-mail à une adresse du domaine. Une fois cela passé, le certificat revient et la demande ne sert plus à rien — elle n'est nécessaire ni pour installer, ni pour renouveler, ni pour révoquer quoi que ce soit. Ce qu'il faut garder, c'est la clé privée, car le certificat est inutile sans elle. Collez le certificat dans le décodeur CSR et ajoutez la clé privée à côté pour vérifier qu'ils correspondent avant de redémarrer quoi que ce soit.
Le certificat sera de courte durée. Un certificat TLS public émis aujourd'hui ne peut pas dépasser 200 jours, puis 100 le 15 mars 2027 et 47 le 15 mars 2029. À ces durées, le renouvellement doit être automatique, c'est-à-dire ACME — et un client ACME génère la demande à votre place : cette page est donc pour les cas qu'un client ne peut pas couvrir, un appareil, un équipement, une AC qui veut une demande faite à la main.
- Votre ordinateurVous envoyez la demande
- L'autorité de certificationElle vérifie que vous contrôlez chaque nomUn enregistrement DNSUn fichier sur le serveur webUn e-mail à une adresse du domaine
- L'autorité de certificationElle signe le certificat et le renvoie
- Votre ordinateurVous l'installez à côté de la cléAprès cela, la demande ne sert plus à rien
- 398 joursEn vigueur aujourd'hui
- 200 joursà partir du 15 mars 2026
- 100 joursà partir du 15 mars 2027
- 47 joursà partir du 15 mars 2029
La même chose avec OpenSSL
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -keyout example.com.key -out example.com.csr crée la clé et la demande en une seule étape.
Le générateur écrit la commande correspondant à ce que vous avez rempli, noms alternatifs et chaque extension compris, et nos tests la font passer par OpenSSL pour vérifier qu'elle crée le même sujet et les mêmes extensions que la page. Ajoutez -subj "/CN=example.com" pour éviter les questions, -addext "subjectAltName=DNS:example.com,DNS:www.example.com" pour les noms, et -utf8 pour qu'un nom accentué survive. -nodes laisse la clé non chiffrée : OpenSSL 3 préfère la nouvelle écriture -noenc mais accepte toujours -nodes, qui est la seule écriture que connaisse le LibreSSL intégré à macOS. Ce LibreSSL ne peut pas créer de clé Ed25519 du tout ; utilisez OpenSSL 1.1.1 ou une version ultérieure pour en créer une.
Pour vérifier ce que vous avez créé : openssl req -in example.com.csr -text -verify -noout affiche chaque champ et vérifie l'auto-signature, en s'arrêtant avant d'afficher quoi que ce soit si la signature échoue. Pour confirmer que la clé appartient à la demande, comparez openssl req -in example.com.csr -pubkey -noout avec openssl pkey -in example.com.key -pubout. Aucune norme n'attribue d'extension de fichier à un CSR : .csr, .pem, .req et .txt sont donc tous corrects.
1openssl req -new 2-utf8 3-newkey ec 4-pkeyopt ec_paramgen_curve:prime256v1 5-nodes 6-keyout example.com.key 7-out example.com.csr 8-sha256 9-subj '/CN=example.com' 10-addext 'subjectAltName=DNS:example.com,DNS:www.example.com'
openssl req -newCréer une demande de signature de certificat-utf8Lire le sujet en UTF-8, pour qu'un nom accentué survive-newkey…et une nouvelle paire de clés avec elle-pkeyoptSur la courbe P-256-nodesLaisser le fichier de clé non chiffré (OpenSSL 3.0 l'écrit aussi -noenc)-keyoutL'endroit où la clé privée est écrite-outL'endroit où la demande est écrite-sha256Le hachage avec lequel la demande est signée-subjLe sujet, pour qu'elle ne pose aucune question-addextLes noms alternatifs
La relire et vérifier sa propre signatureopenssl req -in example.com.csr -text -verify -noout
La clé appartient-elle à la demande ? Les deux sorties doivent être identiquesopenssl req -in example.com.csr -pubkey -nooutopenssl pkey -in example.com.key -pubout
Créer un CSR sous Windows, IIS et macOS
Windows a certreq et un fichier .inf ; macOS a Trousseaux d'accès. Chacun a un piège qu'il vaut mieux connaître avant de commencer.
Sous Windows, certreq -new request.inf request.req lit un fichier dont la section [NewRequest] définit le sujet et la longueur de clé, et dont les noms alternatifs vont dans [Extensions] sous l'OID 2.5.29.17 avec des lignes _continue_ — il n'existe pas de clé SAN=, une erreur facile à commettre. La page de référence de Microsoft elle-même avertit que son exemple utilise SHA-1, et Let's Encrypt refuse une demande signée en SHA-1 : définissez donc vous-même le hachage.
Sur un Mac, Trousseaux d'accès > Assistant de certification > Demander un certificat à une autorité de certificat en écrit un ; le type et la taille de la clé se cachent derrière la case « Me laisser indiquer les informations sur la bi-clé », et les clés RSA de moins de 2048 bits ne sont plus proposées. Aucune de ces deux voies ne rend les noms alternatifs faciles, c'est pourquoi une commande est souvent la route la plus simple.
certreqWindows Server et IIS
certreq lit un fichier texte brut et écrit la demandecertreq -new request.inf request.req[NewRequest]Subject = "CN=example.com"KeyAlgorithm = RSAKeyLength = 2048HashAlgorithm = sha256RequestType = PKCS10[Extensions]2.5.29.17 = "{text}"_continue_ = "DNS=example.com&"_continue_ = "DNS=www.example.com"Les noms alternatifs : une extension désignée par son OID, un nom par ligne
Définissez vous-même le hachage : l'exemple de Microsoft est écrit autour de SHA-1, qu'une autorité de certification refuse
Il n'existe pas de clé SAN=Keychain AccessmacOS
Trousseaux d'accès en écrit une depuis l'Assistant de certificationVotre Mac nomme ces menus dans sa propre langueLet me specify key pair information
Le type et la taille de la clé se cachent derrière cette caseRSA jusqu'à 4096 ; en dessous de 2048, plus proposéUn générateur de CSR en ligne est-il sûr ?
Tout dépend de l'endroit où la clé est créée. Une page qui la crée dans votre navigateur est sûre ; une page qui la crée sur son serveur a eu accès à votre clé privée.
Le test est simple et vous pouvez le faire vous-même : ouvrez le panneau réseau de votre navigateur, générez une demande et observez. Si la clé est créée sur la page, ni elle ni rien de ce que vous avez saisi ne sort : ici, les seules requêtes sont celles de la page elle-même et de deux listes de noms publiques, les mêmes pour chaque visiteur. Si une requête part et qu'une clé revient, cette clé existait d'abord ailleurs, et selon la définition même du secteur elle est compromise avant même que vous l'ayez installée.
Cette page fait tout son travail dans le navigateur : la paire de clés vient de crypto.subtle.generateKey dans un cadre isolé qui n'a le droit de se connecter nulle part, la page écrit la demande autour de la clé publique, et le cadre la signe une fois avec la clé privée, qui ne le quitte jamais. Les deux fichiers apparaissent dans votre navigateur et nulle part ailleurs. Si vous préférez ne faire confiance à aucune page web pour cela, la commande OpenSSL de cette page fait la même chose sur votre propre machine — nous l'affichons précisément pour cette raison.
Cette page
tlds.jsonLa liste des domaines de premier niveau — la même pour chaque visiteursuffixes.jsonLa liste des suffixes publics — la même pour chaque visiteurRien de ce que vous avez saisi, et aucune clé, ne quitte la page
Un générateur qui crée la clé sur son serveur
…/generateVos noms et vos informations-----BEGIN PRIVATE KEY-----Une clé privée, créée ailleursUne clé revient par le réseau : elle existait d'abord ailleurs
Générateur de CSR : questions et réponses
Comment créer un CSR ?
Est-il sûr de générer un CSR en ligne ?
Quel type de clé choisir ?
Puis-je utiliser une clé Ed25519 pour un certificat public ?
À quoi sert le fichier de la clé privée ?
Dois-je renseigner l'organisation et le pays ?
Pourquoi le champ Unité organisationnelle m'avertit-il ?
OU est interdit dans un certificat TLS public. Selon le vote SC047 du CA/Browser Forum, aucun certificat TLS public émis depuis le 1er septembre 2022 ne peut le contenir ; les autorités de certification le suppriment donc de la commande plutôt que de la refuser. Ce générateur propose quand même le champ, pour les AC privées, et vous dit ce que fera une AC publique.Puis-je mettre plusieurs domaines dans un CSR ?
www si vous la voulez. Vous pouvez mélanger wildcards et noms simples, et ajouter des adresses IP, même si toutes les AC ne vendent pas de certificat pour une adresse.Puis-je réutiliser un CSR ou une clé pour le certificat suivant ?
Qu'est-ce qu'un mot de passe de défi ?
Cela fonctionne-t-il pour un certificat wildcard ?
*.example.com dans les noms, et ajoutez aussi example.com si vous voulez couvrir le domaine nu — un wildcard remplace exactement une étiquette et ne correspond pas au nom sous lequel il se trouve. L'astérisque doit constituer toute l'étiquette la plus à gauche, et aucune AC n'émettra de wildcard sur un suffixe public comme *.co.uk.Que faire des fichiers ensuite ?
Il vous manque quelque chose ?Suggérez une fonction ou un nouvel outil
Outils associés
Décodeur CSR et certificat
Décodez un CSR ou un certificat SSL : sujet, SAN, taille de clé, validité, émetteur, empreinte, contrôle de signature et correspondance CSR-certificat
Vérification du Certificat SSL
Vérifiez la validité et les détails de sécurité du certificat SSL
Générateur d'enregistrement DKIM
Créez une paire de clés DKIM dans votre navigateur et obtenez l'enregistrement TXT selector._domainkey à publier
Générateur de Mots de Passe
Mots de passe, phrases secrètes et PIN forts créés dans votre navigateur, avec bits et temps de cassage
Test de santé DNS
Notez le DNS d'un domaine en 40 tests : délégation, serveurs, SOA, DNSSEC, mail
Générateur UUID
Générez des UUID v4, v7, v1, v5 et v3 ou des GUID en masse, dans tous les formats, et décodez la version et le timestamp d'un UUID
