204 votes

Convertir .pfx en .cer

Est-il possible de convertir un fichier .pfx (Personal Information Exchange) en un 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 pouvoir l'extraire, si possible.

2voto

mostafa kazemi Points 137
  1. Démarrer OpenSSL à partir de la page OpenSSL \bin dossier.
  2. Ouvrez l'invite de commande et allez dans le dossier qui contient votre fichier .pfx.
  3. Exécutez la commande suivante pour extraire la clé privée : openssl pkcs12 -in [yourfile.pfx] -nocerts -out [drlive.key] Vous serez invité à saisir le mot de passe d'importation. Saisissez le mot de passe que vous avez utilisé pour protéger votre paire de clés lorsque vous avez créé le fichier .pfx. Vous serez à nouveau invité à fournir un nouveau mot de passe pour protéger le fichier .key que vous êtes en train de créer. Conservez le mot de passe de votre fichier clé dans un endroit sûr afin d'éviter toute utilisation abusive.
  4. Exécutez la commande suivante pour extraire le certificat : openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [drlive.crt]
  5. openssl rsa -in [drlive.key] -out [drlive-decrypted.key]

Convertir un fichier .pfx au format .pem

Dans certains cas, il peut être nécessaire de convertir le fichier .pfx au format .pem. Exécutez la commande suivante pour le convertir au format PEM.

openssl rsa -in [keyfile-encrypted.key] -outform PEM -out [keyfile-encrypted-pem.key]

source : https://www.ibm.com/docs/en/arl/9.7?topic=certification-extracting-certificate-keys-from-pfx-file

1voto

s3c Points 558

C'est peut-être sans rapport avec la question de l'OP, mais j'ai essayé tous déclarations openssl avec tous les différents drapeaux, en essayant de se connecter avec PHP \SoapClient(...) et après 3 jours, j'ai finalement trouvé une solution qui a fonctionné pour moi.

GitBash

$ cd path/to/certificate/
$ openssl pkcs12 -in personal_certificate.pfx -out public_key.pem -clcerts

Vous devez d'abord entrer YOUR_CERT_PASSWORD une fois, puis DIFFERENT_PASSWORD! deux fois. Cette dernière sera peut-être accessible à tous ceux qui ont accès au code.

PHP

$wsdlUrl   = "https://example.com/service.svc?singlewsdl";
$publicKey = "rel/path/to/certificate/public_key.pem";
$password  = "DIFFERENT_PASSWORD!";

$params = [
    'local_cert' => $publicKey,
    'passphrase' => $password,
    'trace' => 1,
    'exceptions' => 0
];

$soapClient = new \SoapClient($wsdlUrl, $params);

var_dump($soapClient->__getFunctions());

-1voto

openssl rsa -in f.pem -inform PEM -out f.der -outform DER

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X