web-dev-qa-db-fra.com

Conversion de P7B à PEM via OpenSSL

Sur Ubuntu, je ne parviens pas à convertir le certificat avec openssl avec succès.

vagrant@dev:/vagrant/keys$ openssl pkcs7 -print_certs -in a.p7b -out a.cer 
unable to load PKCS7 object <blah blah>:PEM
routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: PKCS7

Avez-vous déjà vu cette erreur?

44
Kevin Meredith

Essaye ça:

$ openssl pkcs7 -inform der -in a.p7b -out a.cer

Si cela ne fonctionne pas, apporte à une machine Windows et exportez suivez le guide this .

58
quanta

Donc, pour combiner les réponses ci-dessus, la commande est:
openssl pkcs7 -in cert.p7b -inform DER -print_certs -out cert.pem

Vérifié pour fonctionner sur Windows, en utilisant OpenSSL-Win64

/ Merci Bogdan d'avoir repéré l'erreur

22
Peet van de Sande

J'ai suivi ce guide qui vous demande de changer les lignes d'en-tête/pied de page de

-----BEGIN PKCS #7 SIGNED DATA-----
[data]
-----END PKCS #7 SIGNED DATA-----

à

-----BEGIN CERTIFICATE-----
[data]
-----END CERTIFICATE-----

Exécutez ensuite la commande openssl pkcs7 -in foo.modified.crt -print_certs -out foo.certs (où foo.modified.crt est le fichier dans lequel vous avez enregistré la version modifiée). Cela m'a donné les mêmes résultats que l'exécution d'une exportation de certificat Windows comme suggéré dans d'autres réponses.

8
Curtis Gibby

Pour autant que je sache, ce qui suit devrait convertir un certificat pkcs7 en pem

openssl pkcs7 -in certificate_file.p7b -print_certs -out cert.pem
4
Giuseppe Urso

solution rapide dans mon cas (beaucoup de fichiers avec en-tête/pied de page manquant):

base64 -d $FILE | openssl pkcs7 -inform DER -print_certs

3
Cerber

J'ai eu ce problème également. J'allais vérifier un fichier p7b que j'ai copié à partir d'un hôte Win7.

J'ai découvert que le trousseau de clés gnome peut importer le certificat. De là, il est facile d'exporter vers DER

2
Joakim