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.
Réponses
Trop de publicités?- Démarrer OpenSSL à partir de la page OpenSSL \bin dossier.
- Ouvrez l'invite de commande et allez dans le dossier qui contient votre fichier .pfx.
- 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.
- Exécutez la commande suivante pour extraire le certificat : openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [drlive.crt]
- 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
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());
- Réponses précédentes
- Plus de réponses