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.
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.
Réponses:
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.
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
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 -Type
paramè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.
Je voulais ajouter une méthode qui, à mon avis, était la plus simple de toutes.
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).
Dans le menu Démarrer, tapez certmgr.msc et accédez au programme CertManager.
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).
openssl rsa -in f.pem -inform PEM -out f.der -outform DER