Converter .pfx em .cer

155

É possível converter um arquivo .pfx (Personal Information Exchange) em um arquivo .cer (Certificado de segurança)? A menos que eu esteja enganado, um .cer não está de alguma forma incorporado dentro de um .pfx? Eu gostaria de alguma maneira de extraí-lo, se possível.

Mark Carpenter
fonte

Respostas:

90

a maneira simples que acredito é importá-lo e exportá-lo, usando o gerenciador de certificados no Windows Management Console.

Andrew Cox
fonte
5
Eu tentei fazer isso, mas quando seleciono exportar chave privada, estou recebendo a opção .cer (codificada em DER) desativada. e midletsigner utilidade necessidade provatekey de qualquer forma ..
Jigar Joshi
3
Você deve marcar a caixa ao importá-la, que diz "marcar essa chave como exportável" #
Andrew Andrew
11
Como chegar ao Gerenciador de Certificados no Windows: msdn.microsoft.com/en-us/library/ms788967.aspx
James White
12
A maneira mais fácil de abrir o gerenciador de certificados do Windows é digitar "certmgr.msc" no prompt de comando.
Jan Derk
@AndrewCox, no entanto, há alguma diferença nos bastidores entre marcá-lo como exportável e não marcá-lo como tal. Ou é simplesmente uma opção de interface do usuário?
21716 Pacerier
212

Os arquivos PFX são pacotes padrão do PKCS # 12 Personal Information Exchange Syntax . Eles podem incluir um número arbitrário de chaves privadas com os certificados X.509 que acompanham e uma cadeia de autoridade de certificação (definir certificados).

Se você deseja extrair certificados de cliente, pode usar a ferramenta PKCS12 do OpenSSL .

openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts

O comando acima produzirá certificados no formato PEM. A extensão de arquivo ".crt" é tratada pelo macOS e pelo Windows.

Você mencionou a extensão ".cer" na pergunta que é convencionalmente usada para os arquivos codificados pelo DER. Uma codificação binária. Experimente o arquivo ".crt" primeiro e, se não for aceito, é fácil converter de PEM para DER:

openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer
Berk D. Demir
fonte
9
+1 para explicar qual é o arquivo, além de fornecer os comandos.
27712 Joshua Drake
"Mac verifica erro: senha inválida?" quando eu tentei. Não conheço senhas, só tenho o arquivo que meu fornecedor forneceu.
precisa
1
Parece que cair "-nokeys" obras quando você está attemtping para converter um certificado com suas chaves privadas, por exemplo para uso com Fiddler
Gert van den Berg
@ Berk, além do OpenSSL, o Windows cmd tem alguma maneira de fazer isso?
21716 Pacerier
45

Se você estiver trabalhando no PowerShell, poderá usar algo como o seguinte, dado um arquivo pfx InputBundle.pfx , para produzir um arquivo de certificado (binário) codificado por DER OutputCert.der :

Get-PfxCertificate -FilePath InputBundle.pfx | 
Export-Certificate -FilePath OutputCert.der -Type CERT

Nova linha adicionada para maior clareza, mas é claro que você pode ter tudo isso em uma única linha.

Se você precisar do certificado no formato PEM codificado em ASCII / Base64, poderá executar etapas adicionais conforme documentado em outro lugar, como aqui: /superuser/351548/windows-integrated-utility-to-convert -der-to-pem

Se você precisar exportar para um formato diferente do codificado pelo DER, poderá alterar o -Typeparâmetro para Export-Certificate para usar os tipos suportados pelo .NET, como visto em help Export-Certificate -Detailed:

-Type <CertType>
    Specifies the type of output file for the certificate export as follows. 
     -- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates. 
     -- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate. 
     -- P7B: A PKCS#7 file format which can contain one or more certificates.
Ian Gallagher
fonte
O certificado de exportação está disponível apenas para algumas versões como o Win 8.1 e o Server 2012 R2. Se você estiver em alguma outra versão como o Win 7, não terá sorte!
Deep-B
1
Ele deve estar presente no Server 2012 e no Windows 8.0 ( technet.microsoft.com/en-us/library/hh848628(v=wps.620).aspx ), mas um bom argumento sobre o Windows 7 e outros!
Ian Gallagher
@IanGallagher, Como isso se compara à opção do OpenSSL?
21716 Pacerier
Isso é muito mais conveniente se você não quiser instalar o OpenSSL!
Leonardo Herrera
25

Eu queria adicionar um método que eu acho que era o mais simples de todos.

  1. Simplesmente clique com o botão direito do mouse no arquivo pfx, clique em "Instalar", siga o assistente e adicione-o a uma loja (eu adicionei à loja Pessoal).

  2. No menu Iniciar, digite certmgr.msc e vá para o programa CertManager.

  3. Encontre seu certificado PFX (as guias na parte superior são as várias lojas), clique no botão Exportar e siga o assistente (existe uma opção para exportar como .CER)

Essencialmente, ele faz o mesmo que a resposta de Andrew, mas evita o uso do Windows Management Console (vai direto para a importação / exportação).

kingPuppy
fonte
Não muito mais rápido, pois você ainda teria que certmgr.msc aberta para exportá-lo ....
Pacerier
0
openssl rsa -in f.pem -inform PEM -out f.der -outform DER
Giacomo1968
fonte