Convertir .pfx en .cer

155

Est-il possible de convertir un fichier .pfx (Personal Information Exchange) en fichier .cer (Security Certificate)? Sauf erreur de ma part, un .cer n'est-il pas en quelque sorte intégré dans un .pfx? J'aimerais un moyen de l'extraire, si possible.

Mark Carpenter
la source

Réponses:

90

la manière la plus simple, je crois, est de l'importer puis de l'exporter, en utilisant le gestionnaire de certificats dans Windows Management Console.

Andrew Cox
la source
5
J'ai essayé de faire cela, mais lorsque je sélectionne la clé privée d'exportation, l'option .cer (encodée DER) est désactivée. et l'utilitaire midletsigner ont besoin de provatekey de toute façon ..
Jigar Joshi
3
Vous devez cocher la case lorsque vous l'importez, qui dit "marquer cette clé comme exportable"
Andrew Cox
11
Comment accéder au gestionnaire de certificats sous Windows: msdn.microsoft.com/en-us/library/ms788967.aspx
James White
12
Le moyen le plus simple d'ouvrir le gestionnaire de certificats Windows consiste à taper «certmgr.msc» à l'invite de commande.
Jan Derk
@AndrewCox, Cependant, y a-t-il une différence en arrière-plan entre le marquer comme exportable et ne pas le marquer comme tel. Ou est-ce simplement une option d'interface utilisateur?
Pacerier
212

Les fichiers PFX sont PKCS # 12 Personal Information Exchange Syntax Standard . Ils peuvent inclure un nombre arbitraire de clés privées accompagnées de certificats X.509 et d'une chaîne d'autorité de certification (certificats définis).

Si vous souhaitez extraire des certificats clients, vous pouvez utiliser l'outil PKCS12 d'OpenSSL .

openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts

La commande ci-dessus affichera les certificats au format PEM. L'extension de fichier ".crt" est gérée à la fois par macOS et Windows.

Vous mentionnez l'extension ".cer" dans la question qui est classiquement utilisée pour les fichiers encodés en DER. Un encodage binaire. Essayez d'abord le fichier ".crt" et s'il n'est pas accepté, il est facile de le convertir de PEM en DER:

openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer
Berk D. Demir
la source
9
+1 pour expliquer ce qu'est le fichier en plus de fournir les commandes.
Joshua Drake
"Erreur de vérification Mac: mot de passe invalide?" quand je l'ai essayé. Je ne connais aucun mot de passe, j'ai juste le fichier fourni par mon fournisseur.
Brian Knoblauch
1
Il semble que la suppression de "-nokeys" fonctionne lorsque vous essayez de convertir un certificat avec ses clés privées, par exemple pour une utilisation avec Fiddler
Gert van den Berg
@Berk, à part OpenSSL, Windows cmd a-t-il un moyen de le faire?
Pacerier
45

Si vous travaillez dans PowerShell, vous pouvez utiliser quelque chose comme ce qui suit, à partir d'un fichier pfx InputBundle.pfx , pour produire un fichier de certificat encodé DER (binaire) OutputCert.der :

Get-PfxCertificate -FilePath InputBundle.pfx | 
Export-Certificate -FilePath OutputCert.der -Type CERT

Nouvelle ligne ajoutée pour plus de clarté, mais vous pouvez bien sûr tout avoir sur une seule ligne.

Si vous avez besoin du certificat au format PEM encodé ASCII / Base64, vous pouvez prendre des mesures supplémentaires pour le faire comme documenté ailleurs, comme ici: /superuser/351548/windows-integrated-utility-to-convert -der-to-pem

Si vous devez exporter vers un format différent de celui encodé DER, vous pouvez modifier le -Typeparamètre pour Export-Certificate pour utiliser les types pris en charge par .NET, comme indiqué dans help Export-Certificate -Detailed:

-Type <CertType>
    Specifies the type of output file for the certificate export as follows. 
     -- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates. 
     -- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate. 
     -- P7B: A PKCS#7 file format which can contain one or more certificates.
Ian Gallagher
la source
Le certificat d'exportation n'est cependant disponible que pour certaines versions telles que Win 8.1 et Server 2012 R2. Si vous êtes dans une autre version comme Win 7, alors pas de chance!
Deep-B
1
Il devrait être présent dans Server 2012 et Windows 8.0 ( technet.microsoft.com/en-us/library/hh848628(v=wps.620).aspx ), mais bon point sur Windows 7 et autres!
Ian Gallagher
@IanGallagher, Comment cela se compare-t-il à l'option d'OpenSSL?
Pacerier
C'est bien plus pratique si vous ne voulez pas installer de trucs OpenSSL!
Leonardo Herrera le
25

Je voulais ajouter une méthode qui, à mon avis, était la plus simple de toutes.

  1. Cliquez simplement avec le bouton droit sur le fichier pfx, cliquez sur "Installer", suivez l'assistant et ajoutez-le à un magasin (j'ai ajouté au magasin personnel).

  2. Dans le menu Démarrer, tapez certmgr.msc et accédez au programme CertManager.

  3. Trouvez votre certificat pfx (les onglets en haut sont les différents magasins), cliquez sur le bouton d'exportation et suivez l'assistant (il y a une option pour exporter en .CER)

Essentiellement, il fait la même chose que la réponse d'Andrew, mais cela évite d'utiliser Windows Management Console (va directement à l'importation / exportation).

roiChiot
la source
Pas beaucoup plus rapide puisque vous devez encore ouvrir certmgr.msc pour l'exporter ....
Pacerier
0
openssl rsa -in f.pem -inform PEM -out f.der -outform DER
Giacomo1968
la source