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?
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 .
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
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.
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
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
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