converter formato pfx para p12

119

Preciso exportar um .pfxcertificado de formato (do Windows mmc) para .p12 para usar em outro aplicativo. Não consigo encontrar uma maneira de fazer isso. Alguém pode sugerir um método?

Tom Squires
fonte

Respostas:

202

.p12e .pfxsão ambos arquivos PKCS # 12. Estou esquecendo de algo?

Você já tentou renomear o .pfxarquivo exportado para ter uma .p12extensão?

jglouie
fonte
9
Faz você se perguntar por que elas são duas extensões de arquivo diferentes se elas são realmente a mesma coisa nos bastidores.
BrainSlugs83 de
29
A razão de haver duas extensões de arquivo é histórica. PFX era uma extensão da Microsoft, enquanto P12 era uma extensão do Netscape. Ambos os formatos foram adaptados para serem idênticos, o que significa que os desenvolvedores podem usar o namespace .NET System.Security.Cryptography.X509Certificates para trabalhar com os dois. Veja aqui para mais informações.
SnapShot
6
A extensão de nome de arquivo para arquivos PKCS # 12 é ".p12" ou ".pfx". O "PFX" da Microsoft recebeu muitas críticas por ser um dos protocolos criptográficos mais complexos. PKCS # 12 é o sucessor do "PFX" da Microsoft. PKCS # 12 é um da família de padrões chamados Public-Key Cryptography Standards (PKCS) publicado por RSA Laboratories.
AKS
1
renomear nem sempre funciona porque. por exemplo, se você usar SoapUI e testá-lo em uma autenticação de duas vias, ele falhará. p12 e pfx têm história de volta ao Netscape e IE. eles são QUASE iguais, mas não são arquivos idênticos. portanto, alguns aplicativos podem entender tanto independentemente da extensão e outros precisam de um p12 válido 100% compatível, como SoapUI
M.Hefny
10

Tive problemas com um arquivo .pfx com openconnect. Renomear não resolveu o problema. Usei o keytool para convertê-lo em .p12 e funcionou.

keytool -importkeystore -destkeystore new.p12 -deststoretype pkcs12 -srckeystore original.pfx

No meu caso, a senha do novo arquivo (new.p12) tinha que ser igual à senha do arquivo .pfx.

user3113045
fonte
2
Não funcionou, mesmo que eu tenha usado a mesma senha para ambos. erro obtido "erro de keytool: java.io.IOException: formato de armazenamento de chave inválido"
John Smith
5

Se você está procurando um processo rápido e manual com UI. Eu sempre uso o Mozilla Firefox para converter de PFX para P12. Primeiro importe o certificado para o navegador Firefox (Opções> Privacidade e segurança> Ver certificados ...> Importar ...). Uma vez instalado, execute a exportação para criar o arquivo P12 escolhendo o nome do certificado no Gerenciador de Certificados e clique em Backup ... e insira o nome do arquivo e a senha.

Paul Chan
fonte
4

Esta é mais uma continuação da resposta de jglouie.

Se você estiver usando o openssl para converter o certificado PKCS # 12 em chaves PEM públicas / privadas, não há necessidade de renomear o arquivo. Supondo que o nome do arquivo seja cert.pfx, os três comandos a seguir criarão uma chave pem pública e uma chave pem privada criptografada:

openssl pkcs12 -in cert.pfx     -out cert.pem     -nodes -nokeys
openssl pkcs12 -in cert.pfx     -out cert_key.pem -nodes -nocerts
openssl rsa    -in cert_key.pem -out cert_key.pem -des3

Os primeiros dois comandos podem solicitar uma senha de importação. Esta será uma senha fornecida com o arquivo PKCS # 12.

O terceiro comando permitirá que você especifique a frase secreta de criptografia para o certificado. Isso é o que você vai inserir ao usar o certificado.

Keith Hanlan
fonte
O primeiro comando sobrescreve o segundo, então talvez apenas execute as etapas 2 e 3. Para sua informação, Des3 é a criptografia padrão para a chave privada.
goodguys_activate
1

Execute este comando para alterar o .certarquivo para .p12:

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt 

Onde server.keyestá a chave do servidor e server.certé um certificado de problema de CA ou um arquivo de certificado autoassinado.

Kishore Tiwari
fonte