Tente isto:
$ openssl pkcs7 -inform der -in a.p7b -out a.cer
Se isso não funcionar, leve para uma máquina Windows e exporte-o seguindo este guia.
No Ubuntu, não consigo converter certificados usando o openssl com sucesso.
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
Você já viu esse erro antes?
Tente isto:
$ openssl pkcs7 -inform der -in a.p7b -out a.cer
Se isso não funcionar, leve para uma máquina Windows e exporte-o seguindo este guia.
Então, para combinar as respostas acima, o comando é:
openssl pkcs7 -in cert.p7b -inform DER -print_certs -out cert.pem
Verificado para funcionar no Windows, usando o OpenSSL-Win64
/ Obrigado Bogdan por detectar o erro
Eu segui este guia que instrui você a alterar as linhas de cabeçalho / rodapé de
-----BEGIN PKCS #7 SIGNED DATA-----
[data]
-----END PKCS #7 SIGNED DATA-----
para
-----BEGIN CERTIFICATE-----
[data]
-----END CERTIFICATE-----
Em seguida, execute o comando openssl pkcs7 -in foo.modified.crt -print_certs -out foo.certs
(em que foo.modified.crt
é o arquivo em que você salvou a versão modificada). Isso me deu os mesmos resultados da execução de uma exportação de certificado do Windows, conforme sugerido em outras respostas.
Tanto quanto eu sei, o seguinte deve converter um certificado pkcs7 para um pem
openssl pkcs7 -in certificate_file.p7b -print_certs -out cert.pem
solução rápida no meu caso (muitos arquivos com cabeçalho / rodapé ausentes):
base64 -d $FILE | openssl pkcs7 -inform DER -print_certs
Eu também tive esse problema. Eu ia verificar um arquivo p7b que copiei de um host Win7.
Descobri que o chaveiro do gnome pode importar o certificado. A partir daí, é fácil exportar para o DER