Converter de P7B para PEM via OpenSSL

34

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?

    
por Kevin Meredith 13.08.2012 / 21:50

6 respostas

50

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.

    
por 14.08.2012 / 09:49
11

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

    
por 03.02.2016 / 09:39
8

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.

    
por 28.05.2014 / 20:56
5

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
    
por 06.11.2015 / 11:28
3

solução rápida no meu caso (muitos arquivos com cabeçalho / rodapé ausentes):

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

    
por 08.07.2015 / 15:33
2

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

    
por 25.01.2013 / 21:36