web-dev-qa-db-fra.com

Comment créer un fichier .pfx à partir d'un certificat et d'une clé privée?

J'ai besoin du fichier .pfx pour installer https sur le site Web d'IIS.

J'ai deux fichiers distincts: certificat (.cer ou pem) et clé privée (.crt) mais IIS n'accepte que les fichiers .pfx.

J'ai évidemment installé le certificat et il est disponible dans le gestionnaire de certificats (mmc), mais lorsque je sélectionne l'exportation du certificat Wizard, je ne peux pas sélectionner le format PFX (son affichage est grisé).

Existe-t-il des outils pour le faire ou des exemples C # de le faire par programme?

317
jlp

Vous devrez utiliser openssl.

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

Le fichier de clé est juste un fichier texte contenant votre clé privée.

Si vous avez une autorité de certification racine et des certificats intermédiaires, incluez-les également à l'aide de plusieurs paramètres -in

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt

Vous pouvez installer openssl à partir d'ici: openssl

463
jdehlin

L'utilitaire de ligne de commande Microsoft Pvk2Pfx semble avoir la fonctionnalité dont vous avez besoin:

Pvk2Pfx (Pvk2Pfx.exe) est un outil de ligne de commande permettant de copier les informations de clé publique et de clé privée contenues dans les fichiers .spc, .cer et .pvk dans un fichier d'échange d'informations personnelles (.pfx).
http://msdn.Microsoft.com/en-us/library/windows/hardware/ff550672 (v = vs.85) .aspx

Remarque: si vous avez besoin/souhaitez/préférez une solution C #, vous pouvez envisager d’utiliser l’application http://www.bouncycastle.org/ api.

36
Seymour

Si vous recherchez une interface graphique Windows, consultez DigiCert. Je viens de l'utiliser et c'était assez simple.

Sous l'onglet SSL, j'ai d'abord importé le certificat. Ensuite, une fois que j'ai sélectionné le certificat, j'ai été en mesure d'exporter en tant que PFX, avec et sans fichier de clés.

https://www.digicert.com/util

30
joelnet

Vous n'avez PAS besoin d'OpenSL ou de Makecert ou de tout cela. De plus, vous n'avez pas besoin de la clé personnelle fournie par votre autorité de certification. Je peux presque garantir que le problème est que vous vous attendez à pouvoir utiliser les fichiers de clé et cer fournis par votre autorité de certification, mais ils ne sont pas basés sur "le IIS way". J'en ai tellement marre de voir des informations mauvaises et difficiles ici que j'ai décidé de bloguer le sujet et la solution. Quand vous vous rendrez compte de ce qui se passe et que vous voyez à quel point c'est facile, vous voudrez me prendre dans ses bras :)

Certificats SSL pour IIS avec PFX une fois pour toutes - SSL et IIS expliqués - http://rainabba.blogspot.com/2014/03/ssl-certs- pour-iis-with-pfx-once-and-for.html

Utilisez l'interface utilisateur IIS "Certificats de serveur" pour "Générer une demande de certificat" (les détails de cette demande sortent du cadre de cet article, mais ils sont essentiels). Cela vous donnera un CSR préparé pour IIS. Vous remettez ensuite ce CSR à votre autorité de certification et demandez un certificat. Ensuite, vous prenez le fichier CER/CRT qu’ils vous ont donné, retournez dans IIS, "Demande de certificat complète" au même endroit où vous avez généré la demande. Il peut demander un .CER et vous pourriez avoir un .CRT. Ce sont les mêmes choses. Il suffit de changer l'extension ou d'utiliser le menu déroulant . pour sélectionner votre fichier .CRT. Maintenant, fournissez un "nom convivial" approprié (* .votredomaine.com, votredomaine.com, foo.votredomaine.com, etc.) CECI IS IMPORTANT! Cela DOIT correspondre à ce que vous configurez le CSR et à ce que votre autorité de certification vous a fourni. Si vous avez demandé un caractère générique, votre autorité de certification doit avoir approuvé et généré un caractère générique et vous devez l'utiliser de la même manière. Si votre CSR a été généré pour foo.votredomaine.com, vous DEVEZ fournir la même chose à cette étape.

27
rainabba

https://msdn.Microsoft.com/en-us/library/ff699202.aspx

((les citations pertinentes de l'article sont ci-dessous))

Ensuite, vous devez créer le fichier .pfx que vous utiliserez pour signer vos déploiements. Ouvrez une fenêtre d'invite de commande et tapez la commande suivante:

PVK2PFX –pvk yourprivatekeyfile.pvk –spc yourcertfile.cer –pfx yourpfxfile.pfx –po yourpfxpassword

où:

  • pvk - yourprivatekeyfile.pvk est le fichier de clé privée que vous avez créé à l'étape 4.
  • spc - yourcertfile.cer est le fichier de certificat créé à l'étape 4.
  • pfx - yourpfxfile.pfx est le nom du fichier .pfx à créer.
  • po - yourpfxpassword est le mot de passe que vous souhaitez attribuer au fichier .pfx. Ce mot de passe vous sera demandé lorsque vous ajouterez le fichier .pfx à un projet dans Visual Studio pour la première fois.

(Facultatif (et non pour l'OP, mais pour les futurs lecteurs), vous pouvez créer le fichier .cer et le fichier .pvk à partir de zéro) (vous le feriez AVANT ce qui précède). Notez que les mm/jj/aaaa sont des espaces réservés pour les dates de début et de fin. voir l'article msdn pour une documentation complète.

makecert -sv yourprivatekeyfile.pvk -n "CN=My Certificate Name" yourcertfile.cer -b mm/dd/yyyy -e mm/dd/yyyy -r
6
granadaCoder

Vous devez utiliser l'outil makecert.

Ouvrez une invite de commande en tant qu'administrateur et tapez ce qui suit:

makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"

<CertifcateName> = le nom de votre certificat à créer.

Ensuite, vous pouvez ouvrir le composant logiciel enfichable Gestionnaire de certificats pour la console de gestion en tapant certmgr.msc dans le menu Démarrer, cliquez sur Personnel> Certificats>. Votre certificat doit être disponible.

Voici un article.

https://Azure.Microsoft.com/documentation/articles/cloud-services-certs-create/

6
BentOnCoding

J'ai un lien avec vos besoins . Combinez des fichiers CRT et KEY dans un PFX avec OpenSSL

Extraits du lien ci-dessus:

Nous devons d’abord extraire le certificat de l’autorité de certification racine du fichier .crt existant, car nous en aurons besoin plus tard. Alors ouvrez le fichier .crt et cliquez sur l'onglet Chemin de certification.

Cliquez sur le certificat le plus haut (dans ce cas, VeriSign) et cliquez sur Afficher le certificat. Sélectionnez l'onglet Détails et cliquez sur Copier dans un fichier…

Sélectionnez un certificat X.509 (.CER) codé en base 64. Enregistrez-le sous le nom rootca.cer ou quelque chose de similaire. Placez-le dans le même dossier que les autres fichiers.

Renommez-le de rootca.cer en rootca.crt. Nous devrions maintenant avoir 3 fichiers dans notre dossier à partir desquels nous pouvons créer un fichier PFX.

C'est ici que nous avons besoin d'OpenSSL. Nous pouvons soit le télécharger et l’installer sur Windows , soit simplement ouvrir un terminal sous OSX.

EDIT:

  1. Il existe un lien de support avec des informations étape par étape sur la procédure d'installation du certificat.

  2. Une fois l'installation réussie, exportez le certificat, choisissez le format .pfx, incluez la clé privée.

    Remarque importante: : Pour exporter le certificat au format .pfx, vous devez suivre les étapes sur le même ordinateur que celui auquel vous avez demandé certificat .

  3. Le fichier importé peut être téléchargé sur le serveur.

6
sudhAnsu63

J'ai créé un fichier .pfx à partir de fichiers .key et .pem.

Comme ça openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx

4
Siim Nelis

C’est DE LOIN le moyen le plus simple de convertir des fichiers * .cer en fichiers * .pfx:

Il suffit de télécharger le convertisseur de certificat portable à partir de DigiCert: https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm

Exécutez-le, sélectionnez un fichier et récupérez votre * .pfx !!

4
user1613797

Lorsque vous dites que le certificat est disponible dans MMC, est-il disponible sous "Utilisateur actuel" ou "Ordinateur local"? J'ai constaté que je ne peux exporter la clé privée que si elle se trouve sous Ordinateur local.

Vous pouvez ajouter le composant logiciel enfichable Certificats à MMC et choisir le compte pour lequel il doit gérer les certificats. Choisissez l'ordinateur local. Si votre certificat n'est pas présent, importez-le en cliquant avec le bouton droit de la souris sur le magasin et en choisissant Toutes les tâches> Importer.

Naviguez maintenant vers votre certificat importé sous la version Ordinateur local du composant logiciel enfichable avec certificat. Cliquez avec le bouton droit de la souris sur le certificat et choisissez Toutes les tâches> Exporter. La deuxième page de l'assistant d'exportation doit vous demander si vous souhaitez exporter la clé privée. Sélectionnez Oui. L'option PFX sera désormais la seule disponible (elle est grisée si vous sélectionnez Non et l'option d'exportation de la clé privée n'est pas disponible sous le compte d'utilisateur actuel).

Vous serez invité à définir un mot de passe pour le fichier PFX, puis à définir le nom du certificat.

3
Ryan Elkins

Bien qu'il soit probablement plus facile de générer une nouvelle CSR en utilisant IIS (comme @rainabba), en supposant que vous disposiez des certificats intermédiaires, il existe des convertisseurs en ligne, par exemple: https: // www.sslshopper.com/ssl-converter.html

Cela vous permettra de créer un PFX à partir de votre certificat et de votre clé privée sans avoir à installer un autre programme.

1
William

J'avais le même problème. Mon problème était que l'ordinateur qui a généré la demande de certificat initiale s'était écrasé avant la fin du processus de validation SSL étendu. J'avais besoin de générer une nouvelle clé privée, puis d'importer le certificat mis à jour à partir du fournisseur de certificat. Si la clé privée n'existe pas sur votre ordinateur, vous ne pouvez pas exporter le certificat au format pfx. Leur option est grisée.

1
Bill Mahoney

Je sais que quelques utilisateurs ont parlé d’installer ceci et cela, d’ajouter des programmes en ligne de commande et de télécharger ...

Personnellement, je suis paresseux et trouve toutes ces méthodes fastidieuses et lentes, et je ne veux rien télécharger, ni trouver les bonnes lignes de commande si je ne suis pas obligé de le faire.

Le meilleur moyen pour moi sur mon serveur IIS personnel consiste à utiliser RapidSSLOnline. Cet outil installé sur un serveur vous permet de télécharger votre certificat et votre clé privée. Il est capable de générer un fichier pfx que vous pouvez importer directement dans IIS.

Le lien est ici: https://www.rapidsslonline.com/ssl-tools/ssl-converter.php

Voici les étapes utilisées pour le scénario demandé.

  1. Sélectionnez le type actuel = PEM
  2. Changer pour = PFX
  3. Téléchargez votre certificat
  4. Téléchargez votre clé privée
  5. Si vous avez des certificats certifiés ROOT CA ou intermédiaires, téléchargez-les également.
  6. Définissez un mot de passe de votre choix, utilisé dans IIS
  7. Cliquez sur le reCaptcha pour prouver que vous n'êtes pas un bot
  8. Cliquez sur Convertir

Et voilà, vous devez télécharger un fichier PFX et l’utiliser dans votre processus d’importation sur IIS.

Espérons que cela aidera d’autres personnes du même état, aux techniciennes paresseuses.

0
TheNerdyNerd

Il existe une cmdlet Export-PfxCertificate disponible pour Powershell qui semble faire l'affaire.

0
Usurer

Dans la plupart des cas, si vous ne pouvez pas exporter le certificat en tant que PFX (y compris la clé privée), MMC/IIS ne peut pas trouver/n'a pas accès à la clé privée (utilisée pour générer la CSR). Voici les étapes que j'ai suivies pour résoudre ce problème:

  • Exécutez MMC en tant qu'administrateur
    • Générez le CSR en utilisant MMC. Suivez ces instructions pour rendre le certificat exportable.
  • Une fois que vous avez obtenu le certificat de l'autorité de certification (crt + p7b), importez-le (Personnel\Certificats et Autorité de certification intermédiaire\Certificats).
  • IMPORTANT: cliquez avec le bouton droit de la souris sur votre nouveau certificat (Personnel\Certificats) Toutes les tâches, gérez la clé privée et attribuez des autorisations à votre compte ou à Tout le monde (risqué!). Vous pouvez revenir aux autorisations précédentes une fois que vous avez terminé.
  • Maintenant, cliquez avec le bouton droit sur le certificat et sélectionnez Toutes les tâches ... Exporter. Vous devriez être en mesure d'exporter le certificat, y compris la clé privée, sous forme de fichier PFX et de le télécharger vers Azure!

J'espère que cela t'aides!

0
Jose Parra