Makecert.exe (outil de la création du certificat)

L'outil Certificate Creation Tool (Création de certificats) génère des certificats X.509 uniquement à des fins de tests. Il crée une paire de clés publique/privée pour les signatures numériques et l'enregistre dans un fichier de certificat. Il associe également cette paire de clés à un nom d'éditeur spécifié et crée un certificat X.509 liant un nom spécifié par l'utilisateur à la partie publique de la paire de clés.

Makecert.exe propose des options de base et des options avancées. Les options de base sont celles le plus fréquemment utilisées lors de la création d'un certificat. Les options avancées offrent une flexibilité accrue.

Les clés privées de certificat générées par cet outil ne doivent jamais être stockées dans des fichiers .snk. Si vous avez besoin de stocker une clé privée, vous devez utiliser un conteneur de clé. Pour plus d'informations sur la façon de stocker une clé privée dans un conteneur de clé, consultez Comment : stocker des clés asymétriques dans un conteneur de clé.

Notes

Vous devez utiliser un magasin de certificats pour stocker vos certificats en toute sécurité.Les fichiers .snk utilisés par cet outil stockent des clés privées sans protection.Lorsque vous créez ou importez un fichier .snk, vous devez veiller à le sécuriser pendant l'utilisation et à le supprimer lorsque vous avez terminé.

Cet outil est installé automatiquement avec Visual Studio et avec le Kit de développement logiciel Windows. Pour exécuter l'outil, nous vous recommandons d'utiliser l'invite de commandes Visual Studio ou l'invite de commandes du Kit de développement logiciel (l'interpréteur de commandes CMD). Ces utilitaires vous permettent d'exécuter l'outil facilement, sans naviguer jusqu'au dossier d'installation. Pour plus d'informations, consultez Invites de commandes Visual Studio e t Kit de développement logiciel (SDK) Windows.

  • Si Visual Studio est installé sur votre ordinateur : dans la barre des tâches, cliquez sur le bouton Start, All Programs, Visual Studio, sur Visual Studio Tools, puis sur Visual Studio Command Prompt.

    ou

    Si vous avez le Kit de développement logiciel Windows installé sur votre ordinateur : Dans la barre des tâches, cliquez sur Start, All Programs, le dossier correspondant au Kit de développement logiciel, puis sur Command Prompt (ou CMD Shell).

  • À l'invite de commandes, tapez ce qui suit :

makecert [options] outputCertificateFile

Argument

Description

outputCertificateFile

Nom du fichier .cer dans lequel le certificat de test X.509 sera écrit.

Options de base

Option

Description

-n nom

Spécifie le nom du certificat du sujet. Ce nom doit être conforme à la norme X.500. La méthode la plus simple consiste à faire précéder le nom de CN= et d'entourer le tout de guillemets doubles (-n "CN=myName", par exemple).

-pe

Marque la clé privée générée comme étant exportable. Cela permet l'inclusion de la clé privée dans le certificat.

-sk keyname

Spécifie l'emplacement du conteneur de clé du sujet comportant la clé privée. Un conteneur de clé sera créé si aucun n'existe.

-sr emplacement

Spécifie l'emplacement du magasin du certificat du sujet. location peut être currentuser (valeur par défaut) ou localmachine.

-ss store

Spécifie le nom du magasin du certificat du sujet qui stocke le certificat de sortie.

-# chiffre

Spécifie un numéro de série compris entre 1 et 2 147 483 647. La valeur par défaut est une valeur unique générée par Makecert.exe.

-$ autorité

Spécifie l'autorité de signature du certificat, laquelle doit être définie comme étant commercial (pour les certificats utilisés par les éditeurs de logiciels commerciaux) ou individual (pour les certificats utilisés par les éditeurs de logiciels individuels).

-?

Affiche la syntaxe de commande et la liste des options de base de l'outil.

-!

Affiche la syntaxe de commande et la liste des options avancées de l'outil.

Options avancées

Option

Description

-a algorithme

Spécifie l'algorithme de signature. algorithm doit être md5, sha1 (valeur par défaut), sha256, sha384 ou sha512.

-b jj/MM/aaaa

Spécifie le début de la période de validité. Utilise par défaut la date du jour.

-crl

Génère une liste de réadressage de certificats (CRL) au lieu d'un certificat.

-cy certType

Spécifie le type de certificat. Les valeurs valides sont end pour l'entité finale et authority pour l'Autorité de certification.

-e jj/MM/aaaa

Spécifie la fin de la période de validité. La valeur par défaut correspond au 31/12/2039 à 11:59:59 GMT.

-eku oid[,oid…]

Insère dans le certificat une liste d'identificateurs d'objets séparés par des virgules et destinés à l'utilisation améliorée de la clé.

-h chiffre

Spécifie la hauteur maximale de l'arborescence en dessous de ce certificat.

-ic file

Spécifie le fichier de certificat de l'émetteur.

-ik keyName

Spécifie le nom du conteneur de clé de l'émetteur.

-iky keytype

Spécifie le type de clé de l'émetteur, qui doit être l'un des éléments suivants : signature (qui indique que la clé est utilisée pour une signature numérique), exchange (qui indique que la clé est utilisée pour le chiffrement à clé et l'échange de clé), ou un entier représentant un type de fournisseur. Par défaut, vous pouvez passer 1 pour une clé d'échange et 2 pour une clé de signature.

-in nom

Spécifie le nom commun du certificat de l'émetteur.

-ip fournisseur

Spécifie le nom du fournisseur CryptoAPI de l'émetteur. Pour plus d'informations sur le nom de fournisseur CryptoAPI, consultez l'option –sp.

-ir emplacement

Spécifie l'emplacement du magasin du certificat de l'émetteur. location peut être currentuser (valeur par défaut) ou localmachine.

-is store

Spécifie le nom du magasin du certificat de l'émetteur.

-iv pvkFile

Spécifie le fichier de clé privée .pvk de l'émetteur.

-iy type

Spécifie le type de fournisseur CryptoAPI de l'émetteur. Pour plus d'informations sur le type de fournisseur CryptoAPI, consultez l'option –sy.

-l link

Établit un lien vers des informations de stratégie (URL, par exemple).

-len chiffre

Spécifie la longueur de clé générée, en bits.

-m chiffre

Spécifie la durée, en mois, de la période de validité du certificat.

-nscp

Inclut l'extension d'autorisation cliente Netscape.

-r

Crée un certificat autosigné.

file-sc

Spécifie le fichier de certificat du sujet.

-sky keytype

Spécifie le type de clé du sujet, qui doit être l'un des éléments suivants : signature (qui indique que la clé est utilisée pour une signature numérique), exchange (qui indique que la clé est utilisée pour le chiffrement à clé et l'échange de clé), ou un entier représentant un type de fournisseur. Par défaut, vous pouvez passer 1 pour une clé d'échange et 2 pour une clé de signature.

-sp fournisseur

Spécifie le nom du fournisseur CryptoAPI du sujet, qui doit être défini dans les sous-clés du registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider. Si –sp et –sy sont présents, le type de fournisseur CryptoAPI doit correspondre à la valeur de Type de la sous-clé du fournisseur.

-sv pvkFile

Spécifie le fichier de clé privée .pvk du sujet. Le fichier est créé s'il n'existe pas déjà.

-sy type

Spécifie le type du fournisseur CryptoAPI du sujet, qui doit être défini dans les sous-clés du registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types. Si –sy et –sp sont présents, le nom du fournisseur CryptoAPI doit correspondre à la valeur Name de la sous-clé du type de fournisseur.

-tbs

Spécifie le certificat ou le fichier CRL à signer.

Exemples

La commande suivante crée un certificat de test émis par la racine de test par défaut et l'écrit dans testCert.cer.

makecert testCert.cer

La commande suivante crée un certificat émis par la racine de test par défaut et l'enregistre dans un magasin de certificats.

makecert -ss testCertStore

La commande suivante crée un certificat émis par la racine de test par défaut et l'enregistre dans un magasin de certificats. Il place explicitement le certificat dans le magasin currentuser.

makecert -ss testCertStore -sr currentuser

La commande suivante crée un certificat de test et l'écrit dans textXYZ.cer, à l'aide du conteneur de clé du sujet et du nom X.500 du sujet du certificat.

makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer 

La commande suivante crée un certificat émis par la racine de test par défaut, crée un fichier .pvk et renvoie le certificat dans le magasin et dans le fichier.

makecert -sv testCert.pvk -ss testCertStore testCert.cer

La commande suivante crée un certificat émis par la racine de test par défaut, crée un conteneur de clés et renvoie le certificat dans le magasin et dans le fichier.

makecert -sk myTestKey -ss testCertStore testCert.cer

La commande suivante crée un certificat signé automatiquement, spécifie un nom du sujet "Société CN=XYZ", spécifie des périodes de début et de fin de validité, place la clé dans le magasin my, spécifie une clé d'échange et rend la clé privée exportable.

makecert -r -pe -n "CN=XYZ Company" -b 01/01/2005 -e 01/01/2010 -sky exchange -ss my

La commande suivante crée un certificat auto-signé qui peut être utilisé pour tester une application Web qui utilise Secure Sockets Layer (SSL) sur un serveur Web dont l'URL est www.exemple.com. L'OID défini par l'option –eku identifie ce certificat en tant que certificat de serveur SSL. Le certificat est stocké dans le magasin my et est disponible au niveau de l'ordinateur (plutôt que l'utilisateur). La clé privée du certificat est exportable, et le certificat est valide du 10 mai 2010 au 22 décembre 2011.

Makecert –r –pe –n CN="www.example.com" –b 05/10/2010 –e 12/22/2011 –eku 1.3.6.1.5.5.7.3.1 –ss my –sr localmachine -sky exchange –sp "Microsoft RSA SChannel Cryptographic Provider" –sy 12

Les commandes suivantes créent des certificats, puis les enregistrent dans des magasins. La première commande crée un certificat à l'aide de la racine de test par défaut et l'enregistre dans un magasin. La deuxième commande crée un autre certificat à l'aide du certificat créé récemment et l'enregistre dans un autre magasin.

makecert -sk myTestKey -ss testCertStore
makecert -is testCertStore -ss anotherTestStore

Les commandes suivantes créent des certificats, puis les enregistrent dans des magasins. La première commande enregistre le certificat dans le magasin my. La deuxième commande crée un autre certificat à l'aide du certificat créé récemment. Parce qu'il y a plusieurs certificats dans le magasin my, la deuxième commande identifie le premier certificat à l'aide de son nom commun.

makecert -sk myTestKey -n "CN=XXZZYY" -ss my
makecert -is my -in "XXZZYY" -ss anotherTestStore

Les commandes suivantes créent des certificats, puis les enregistrent dans des fichiers et magasins. La première commande crée un certificat à l'aide de la racine de test par défaut et l'enregistre dans le magasin my et dans un fichier. La deuxième commande crée un autre certificat à l'aide du certificat testCert.cer créé récemment. Parce qu'il y a plusieurs certificats dans le magasin my, la deuxième commande identifie le premier certificat à l'aide du nom de fichier de certificat.

makecert -sk myTestKey -n "CN=XXZZYY" -ss my testCert.cer
makecert -is my -ic testCert.cer -ss anotherTestStore

Voir aussi

Référence

Cert2spc.exe (outil de test de certificat d'éditeur de logiciels)

Invites de commandes Visual Studio e t Kit de développement logiciel (SDK) Windows

Autres ressources

Outils du .NET Framework

Historique des modifications

Date

Historique

Motif

Avril 2011

Informations supplémentaires sur l'utilisation des invites de commandes de Visual Studio et du Kit de développement logiciel (SDK) Windows.

Améliorations apportées aux informations.

Mai 2010

Nombreuses modifications.

Commentaires client.