Menu Fermer

certutil : importer/exporter les certificats de Windows en ligne de commandes

certutil.exe est une commande CMD que vous pouvez utiliser dans l’invite de commandes pour gérer les certificats électroniques.
Elle vous permet d’importer, exporter, lister les certificats de l’utilisateur, d’autorité dans Windows.

Cet article vous présente certutil avec quelques exemples d’utilisation.

certutil : importer/exporter les certificats de Windows en ligne de commandes

Certutil : gérer les certificats de Windows en ligne de commandes

Introduction

La liste complète des commandes peut être récupérée en appelant la requête d’aide de l’outil de ligne de commande standard:

certutil -?

La commande génère les commandes de niveau supérieur. Chaque commande de niveau supérieur a des commandes contextuelles et leur utilisation est interrogée en conséquence:

certutil -dump -?

Il existe un commutateur détaillé qui décharge une sortie plus détaillée. Placez le commutateur -v au début de tout autre paramètre pour obtenir une sortie étendue. En outre, il existe un commutateur non documenté qui affiche les commandes de niveau supérieur masquées et (bien sûr) non documentées:

certutil -uSAGE

Ce commutateur est sensible à la casse.

La commande certutil accepte différentes options pour spécifier le magasin de certificats de Windows.
Voici les options pour cela :

Mais aussi :

  • ca spécifie les certificats dans le magasin des autorités de certification intermédiaires
  • clientissuer : Emetteurs d’authentification du client
  • my -spécifie les certificats émis à l’utilisateur actuel
  • root spécifie les certificats dans le magasin des autorités de certification racines de confiance
  • spc spécifie les certificats d’éditeur de logiciel
  • user_created_store spécifie le nom d’un magasin de certificats créé par l’utilisateur
  • trust spécifie le magasin “Enterprise Trust”
  • trustedPublisher spécifie le magasin “Trusted Publishers”
  • SmartCardRoot : magasin de racines de confiances de cartes à puces

Vous pouvez aussi les lister en Powershell de cette manière :

ls Cert:\LocalMachine

Enfin il existe plusieurs magasin de certificats dans Windows, par exemple celui de l’utilisateur, entreprise, services ou stratégie de groupe d’ordinateur.
On peut spécifier ces derniers avec les paramètres suivants :

  • -user pour accéder à un magasin d’utilisateurs plutôt qu’à un magasin d’ordinateurs (HKEY_CURRENT_USER).
  • -enterprise pour accéder à un magasin d’ordinateurs d’entreprise.
  • -service pour accéder à un magasin de services d’ordinateur.
  • -grouppolicy pour accéder à un magasin de stratégies de groupe d’ordinateur.

Importer un certificat p12

Pour importer un fichier p12 en ligne de commandes avec certutil :

certutil -p "motdepasse" -importpfx cert.p12

Si vous ne spécifiez pas le paramètre -p dans la commande, le mot de passe vous sera demandé.

Ainsi pour importer le certificat dans Personnel, on utilise -user :

certutil -user -p "@$DuGHz?66" -importpfx %USERPROFILE%\Desktop\cert.p12"

Ajouter un certificat racine

L’import d’un certificat se fait à partir d’un fichier CER en utilisant l’option -addstore suivait du magasin où importer.

Par exemple ci-dessous, on utilise certutil pour importer le certificat capublickey.cer dans le magasin des autorités de certification racines de confiance.

certutil.exe -addstore root c:\capublickey.cer

Pour importer un certificat dans le le magasin des autorités de certification intermédiaires :

certutil -addstore CA c:\cacert.cer

Enfin pour importer un certificat dans Personnel :

certutil -addstore -f "My" "MyCertificate.cer"

Son équivalent en PowerShell :

Import-Certificate -FilePath "C:\CA-PublicKey.Cer" -CertStoreLocation Cert:\LocalMachine\Root
Import-PfxCertificate -FilePath .\Certificate.cer -CertStoreLocation Cert:\LocalMachine\My

Enfin notez aussi qu’il existe la commande certmgr que l’on utilise comme ceci :

CertMgr /add OutputFile.cer /s /r localMachine root 
CertMgr /add OutputFile.cer /s /r localMachine trustedpublisher

Lister les certificats d’un magasin

certutil permet aussi d’interroger les magasin de certificats.
Il est tout à fait possible de lister le contenu et obtenir aussi les donnés d’un certificat comme le nom de l’émetteur, le hash, les dates de validité, etc.

Voici un exemple de syntaxe à utiliser pour lister le magasin personnel :

certutil -user -store my

Pour obtenir les informations d’un certificat, on utilise son numéro de série qui est unique de cette manière :

certutil -user -store my "170de742228088944f5667f6f4390219"

Le numéro de série, on le trouve aussi dans l’onglet Détails des propriétés du certificat :

Ou encore lorsqu’il s’agit d’un certificat d’autorité :

certutil -v -store CA "numéro de série"

Enfin on peut utiliser le paramètre -v pour afficher la chaîne de certification complète :

certutil -v -user -store my "170de742228088944f5667f6f4390219"

Exporter un certificat

Enfin vous pouvez exporter un certificat.
Il faut dans un premier temps récupérer le numéro de série avec les commandes données précédemment (ou via l’interface certmgr.msc).

La syntaxe certutil pour exporter un certificat :

certutil -f  -exportpfx <numéro de série> <chemin du fichier pfx>

On peut protéger la clé privée avec un mot de passe à l’aide de l’option -p.
Dans cet exemple, on utilise certutil pour exporter :

  • Le certificat avec le numéro de série 1121fa3fbb533ab7872792fcb33b4d296a37
  • vers le fichier supercertificat.pfx
  • protégé par le mot de passe supermotdepassesupersecure
certutil -f -p "supermotdepassesupersecure" -exportpfx 1121fa3fbb533ab7872792fcb33b4d296a37 %USERPROFILE%\Desktop\supercertificat.pfx