Obtenir un certificat PFX à partir d’un CRT et d’une clé privée

Qu'avons-nous dans la boîte ?
À partir de l’utilitaire Certutil intégré à Windows, on peut générer un certificat PFX à partir d’un fichier au format CRT et d’une clé privée (private key). Sous Windows, le format de certificat PFX (PKCS#12) est utilisé par le serveur Web IIS. Il présente la particularité d’inclure le certificat et la clé privée dans le même fichier, et non dans deux fichiers distincts.
Du coup, si l’on a un certificat dans un fichier « .CRT » et un fichier de clé privée « .KEY », on ne peut pas l’importer en l’état dans IIS. Par contre, sur un environnement Linux c’est royal, car on a besoin de ces deux fichiers en règle générale.
Sous Windows, il y a un utilitaire intégré au système nommé « certutil » qui permet de manipuler les certificats. Nous pouvons l’utiliser pour générer le certificat PFX sans installer un logiciel supplémentaire. En effet, bien souvent, on installe OpenSSL sur sa machine Windows pour réaliser cette opération (comme on le ferait sous Linux), mais ce n’est pas indispensable !
1. Certutil : générer un certificat PFX
À partir du fichier CRT et du fichier de clé, nous allons générer un certificat PFX qui contiendra les deux fichiers, en respectant ce format. Imaginons que l’on dispose des deux fichiers suivants : certificat.crt et certificat.key. On souhaite obtenir le fichier certificat.pfx.
À partir d’une Invite de commande Windows ou d’une console PowerShell, la commande suivante devra être exécutée :
certutil -MergePFX certificat.crt certificat.pfx
Alors, oui, le nom de la clé n’est pas précisé dans la commande ci-dessus, mais c’est normal. Par contre, les fichiers certificat.crt et certificat.key doivent se situer dans le même dossier pour que ça fonctionne ! À noter également que :
- le fichier de la clé privée doit avoir l’extension « .KEY » impérativement !
- le fichier du certificat et le fichier de la clé privée doivent avoir le même nom (sans tenir compte de l’extension qui est différente)
En respectant ces consignes, le fichier de sortie au format PFX sera obtenu sans difficulté.

Pour les amateurs d’OpenSSL, voici la syntaxe équivalente permettant d’obtenir un certificat PFX en sortie :
OpenSSL.exe pkcs12 -export -in certificat.cer -inkey certificat.key -out certificat.pfx
Vous avez un certificat au format PFX entre les mains : il ne reste plus qu’à le mettre en place au sein de votre application, que ce soit dans IIS ou ailleurs.
2. Conclusion
Grâce à cet article de la boîte à tutoriels informatique, vous êtes capable de convertir un certificat CRT et une clé privée au format PFX à l’aide de l’outil Certutil, voire même d’OpenSSL.
Ressources :