Diferenças entre os formatos .pfx, .p12, .cer e .crt explicadas em detalhes.

Última atualização: 13/01/2026
autor: Isaac
  • Os formatos .cer e .crt geralmente contêm certificados X.509 públicos em PEM ou DER, enquanto .pfx e .p12 são contêineres PKCS#12 com certificado, cadeia de certificados e chave privada protegida por senha.
  • PEM e PKCS#7 (.p7b) usam codificação ASCII Base64, DER e PKCS#12 são binários; todos representam a mesma informação criptográfica com diferentes contêineres e usos.
  • A chave privada é armazenada em arquivos .key ou dentro de arquivos .pfx/.p12, nunca em .p7b; identificar a localização da chave é essencial para instalar, exportar ou renovar certificados.
  • O OpenSSL permite a conversão entre PEM, DER, PKCS#7 e PKCS#12, facilitando a adaptação de qualquer certificado ao formato exigido por cada servidor ou sistema.

formatos de certificados digitais

Se você veio aqui procurando por Diferenças entre .pfx, .p12, .cer e .crtVocê provavelmente já se deparou com mais de um arquivo estranho ao instalar um certificado digital ou SSL em um servidor. Você não está sozinho: entre siglas, extensões e formatos, é fácil ficar confuso e não saber o que cada arquivo faz ou qual você precisa em cada caso.

A boa notícia é que, embora os nomes possam parecer intimidantes, tudo isso pode ser explicado de forma bastante simples se entendermos que todos esses arquivos nada mais são do que contêineres de certificados e chaves em diferentes formatos (texto ou binário) e projetados para diferentes sistemas (Windows, Linux(Java, navegadores, etc.). Vamos analisá-los um por um, com calma, e relacioná-los uns aos outros para que você saiba exatamente o que cada coisa é, para que serve e como usá-las ou convertê-las quando necessário.

O que é um certificado digital e como os formatos .pfx, .p12, .cer e .crt se relacionam?

Um certificado digital nada mais é do que um Documento eletrônico assinado por uma Autoridade Certificadora (CA ou, de acordo com o regulamento eIDAS, um Provedor de Serviços Qualificado) que vincula uma identidade a uma chave pública. Essa identidade pode ser uma pessoa, uma empresa, um servidor web, um domínio, etc.

Para estabelecer essa conexão, utiliza-se o seguinte: criptografia de chave pública ou assimétricaExiste um par de chaves: uma chave pública (que qualquer pessoa pode conhecer) e uma chave privada (que somente o proprietário deve possuir). O que é criptografado com a chave pública só pode ser descriptografado com a chave privada, e vice-versa, permitindo autenticação, criptografia e assinaturas eletrônicas.

Por trás de todos esses certificados existe um Infraestrutura de chave pública ou PKIque inclui a autoridade de certificação, as autoridades de registro, os repositórios de certificados, as listas de revogação de certificados (CRLs) e, em muitos ambientes, uma autoridade de carimbo de tempo (TSA) para registrar quando algo foi assinado.

A estrutura interna da grande maioria dos certificados de uso geral segue o padrão. X.509, definida pela UIT e descrita em detalhes na RFC 5280. Esta norma define campos como versão, número de série, algoritmo de assinatura, emissor, período de validade, sujeito, chave pública do detentor e possíveis extensões adicionais.

Em relação aos algoritmos, os certificados normalmente utilizam criptografia assimétrica com RSA, DSA ou ECDSARSA e ECDSA servem tanto para assinatura quanto para criptografia, enquanto DSA se concentra na assinatura e verificação de assinaturas digitais.

Formatos e extensões internas: PEM, DER, CER, CRT e outras.

Quando falamos de extensões como .cer, .crt, .pem, .der, .pfx, .p12 ou .p7bNa realidade, estamos misturando dois conceitos: o formato de codificação do certificado (texto Base64 ou binário) e a função que o arquivo possui (somente certificado, certificado + chave privada, cadeia de certificados, etc.).

No nível do formato interno, os certificados X.509 são representados com ASN.1 e normalmente são codificados com DER (binário) ou sua variante textual PEM (DER convertido para Base64 e encapsulado com cabeçalhos como INÍCIO/FIMA partir daí, diferentes sistemas e padrões foram definidos. recipientes específicos tais como PKCS#7 (.p7b) ou PKCS#12 (.pfx, .p12).

A chave para evitar confusão é lembrar que a extensão do arquivo geralmente é apenas uma. convenção de nomenclaturaUm arquivo .cer ou um arquivo .crt podem conter exatamente a mesma coisa; a diferença é que um é mais usado no Windows e o outro em ambientes Unix/Linux, para dar um exemplo.

Dentro desse grupo geral, existem alguns formatos principais É importante entender bem esses conceitos, pois são os que você encontrará o tempo todo ao trabalhar com SSL/TLS ou certificados pessoais.

Formato PEM: o “texto legível” dos certificados.

O formato PEM é de longe o mais comum para certificados SSL/TLS em servidores como Apache ou Nginx e na maioria das ferramentas de segurança. Um arquivo PEM é simplesmente um arquivo de texto. DER recodificado em Base64 e cercado por cabeçalhos de texto.o que permite abri-lo e copiá-lo com qualquer editor (Bloco de Notas, nano, vim, etc.).

Um PEM é reconhecido porque seu conteúdo é delimitado por linhas como —–INICIAR CERTIFICADO—– y —– ENVIAR CERTIFICADO—– quando contém um certificado, ou —–INÍCIO DA CHAVE PRIVADA—– y —–FIM DA CHAVE PRIVADA—– quando contém uma chave privada. Tudo o que estiver entre esses dois pontos é uma string Base64 que representa os dados binários originais.

Em um único arquivo PEM você pode ter apenas o certificadoÉ possível fornecer o certificado juntamente com a cadeia de CA intermediária, a chave privada separadamente ou até mesmo o pacote completo (chave privada, certificado do servidor, certificados intermediários e certificado raiz). As solicitações de assinatura de certificado também são fornecidas em formato PEM. RSEque nada mais são do que estruturas PKCS#10 recodificadas em texto.

Este formato foi originalmente definido nas RFCs 1421-1424 como parte do projeto Privacy-enhanced Electronic Mail, que não se popularizou para e-mail, mas deixou como um excelente formato de texto para transportar dados criptográficos Em um formato confortável, legível e fácil de copiar/colar.

  Os 6 tipos mais comuns de crimes informáticos na web

Na prática, arquivos com extensões .pem, .crt, .cer ou .key Em sistemas Unix/Linux, geralmente são arquivos PEM. Normalmente, o arquivo .key contém a chave privada, o arquivo .crt ou .cer contém o certificado do servidor e, às vezes, um arquivo PEM adicional inclui a cadeia de certificados da Autoridade Certificadora intermediária.

Formato DER: o binário puro e simples.

DER (Distinguished Encoding Rules) é o formato de codificação binária São estruturas ASN.1 que descrevem um certificado X.509. Não é um texto, portanto, se você o abrir com um editor, verá caracteres estranhos em vez da string Base64 típica.

Um arquivo DER pode conter qualquer tipo de certificado ou chave privadaGeralmente é identificado pelas extensões .der ou .cer, especialmente em ambientes Windows ou em plataformas Java. No Windows, um arquivo .der é reconhecido diretamente como um arquivo de certificado e abre com o visualizador nativo ao clicar duas vezes nele.

A diferença prática em relação ao PEM é que, enquanto o PEM pode ser facilmente copiado e enviado por e-mail ou colado em formulários da web, o DER é um blob binário fechado Projetado para consumo direto por aplicativos. Internamente, no entanto, a informação é a mesma: um PEM nada mais é do que um DER recodificado em texto Base64.

Ferramentas como o OpenSSL permitem alternar entre DER e PEM com um único comando, sem alterar o conteúdo lógico do certificado, apenas sua forma de representação.

Extensões .cer e .crt: mesmo cachorro com coleira diferente.

As extensões .cer e .crt são usadas para designar arquivos contendo certificados públicos, geralmente em formato PEM ou DER, dependendo do sistema em que são gerados ou instalados.

Em alguns casos, um arquivo .crt em um servidor Apache será um certificado em PEM O arquivo .cer está delimitado pelos cabeçalhos BEGIN/END CERTIFICATE e pronto para ser colado em um bloco de configuração. No Windows, um arquivo .cer pode ser PEM ou DER, embora normalmente se enquadre em uma ou outra categoria dependendo da ferramenta que o gerou.

O importante é entender que a extensão não define estritamente o formato interno: um arquivo .cer pode ser um texto PEM ou um binário DER, e um visualizador ou utilitário como o OpenSSL determinará como lê-lo. Em navegadores e sistemas Windows, clicar duas vezes abrirá o arquivo... visualizador de certificadosonde você pode ver o emissor, o titular, as datas de validade, o uso da chave, etc.

Ao exportar um certificado sem chave privada de um navegador ou do repositório de certificados do Windows, você normalmente obterá um arquivo .cer, que é usado para validar assinaturas, cadeias de confiança ou criptografar informaçõesmas nunca para assinar em nome do proprietário (para isso é necessária a chave privada, que está separada ou dentro de um contêiner protegido).

CSR, chave, CA e arquivos intermediários: os demais arquivos que acompanham o certificado.

Ao processar um certificado SSL ou um certificado pessoal, você não verá apenas arquivos .pfx, .p12 ou .cer. Todo o processo também envolve arquivos como Certificados .csr, .key ou CA (raiz e intermediários), que são igualmente importantes para que tudo funcione.

O pedido de assinatura ou CSR (.csr) É um arquivo que você normalmente gera no servidor onde o certificado SSL será instalado. Ele contém a chave pública, o nome de domínio, a organização, o país e outras informações que a autoridade certificadora usará para emitir o certificado. Ele segue o padrão PKCS#10 e geralmente é codificado em PEM para que você possa copiá-lo e colá-lo no formulário do provedor.

A chave privada ou CHAVE (.chave) Este é o arquivo onde a chave secreta associada ao certificado é armazenada. Geralmente está no formato PEM, delimitado por BEGIN PRIVATE KEY e END PRIVATE KEY. É um arquivo extremamente sensível que não deve ser compartilhado ou carregado em repositórios públicos e, em muitos casos, também é protegido por senha.

O arquivo de CA ou certificado de autoridade Contém a chave pública da entidade que emite ou intermedia o certificado. Navegadores e OS Eles vêm com uma lista padrão de ACs confiáveis, mas às vezes é necessário instalar certificados intermediários para completar a cadeia de confiança, para que os clientes possam validar o certificado do seu servidor sem erros.

Esses certificados intermediários podem ser fornecidos como arquivos PEM (.pem, .crt, .cer) ou dentro de um contêiner, como por exemplo... .p7bEm configurações de hospedagem, é muito comum que seja solicitado o CRT (certificado de domínio), a chave (chave privada) e os arquivos de certificado da CA (autoridade certificadora) ou intermediários para instalar o SSL corretamente.

PKCS#7 / P7B: cadeia de certificados sem chave privada

PKCS#7, geralmente representado com extensões .p7b ou .p7cÉ um formato projetado para agrupar um ou mais certificados em um contêiner estruturado, sem incluir a chave privada. É comumente usado para distribuir cadeias de certificados (certificado do servidor mais certificados intermediários) em ambientes Windows ou Java (Tomcat, keystore, etc.).

Um arquivo .p7b é normalmente codificado em Base64 ASCII, semelhante a um arquivo PEM, e foi originalmente definido na RFC 2315 como parte dos padrões de criptografia de chave pública. Hoje, seu sucessor é o CMS (Cryptographic Message Syntax), mas o nome PKCS#7 ainda é amplamente utilizado no mundo dos certificados SSL.

  Corrigir erro de vídeo do Google Drive ainda em processamento

Este formato é muito útil quando você precisa instalar toda a cadeia de confiança Em um servidor ou em um sistema que gerencia certificados por meio de um repositório (por exemplo, o keystore do Java). Normalmente, um provedor SSL entrega o certificado do servidor e um arquivo .p7b com toda a cadeia de certificados da Autoridade Certificadora (CA), ou um único arquivo .p7b contendo tudo.

Se você deseja converter um arquivo .p7b para PEM, ferramentas como o OpenSSL permitem extrair os certificados com um único comando e salvá-los em um ou mais arquivos de texto. Você pode então separar os blocos BEGIN/END CERTIFICATE, caso precise enviá-los separadamente para o seu servidor.

É importante observar que um arquivo PKCS#7 Nunca contém a chave privada.Portanto, por si só, não é útil para assinatura ou descriptografia: fornece apenas a parte pública da cadeia de certificados para validar a confiança.

PKCS#12: O que são exatamente os arquivos .pfx e .p12?

O padrão PKCS#12 define um contêiner binário protegido por senha que pode incluir certificados públicos, cadeias de CA completas e a chave privada associados. As extensões mais comuns para esse formato são .pfx e .p12, que são praticamente equivalentes.

Historicamente, o PKCS#12 começou como um formato intimamente ligado à Microsoft, mas com o tempo Foi padronizado na RFC 7292 e é usado hoje em todos os tipos de sistemas, precisamente porque permite Transporte com segurança o par de certificado e chave privada. de uma equipe para outra.

No ambiente Windows, ao exportar um certificado de "chave privada" do repositório de certificados do usuário ou da máquina, o assistente gera um arquivo .pfx (ou .p12) que inclui tudo o que você precisa para importá-lo para outro sistema: chave privada, titular do certificado e, geralmente, a cadeia intermediária.

Durante a criação ou exportação de um arquivo PKCS#12, o sistema solicitará que você especifique um proteção por senhaEssa senha será necessária posteriormente para importar o arquivo para outro navegador, IIS, cliente de e-mail ou até mesmo outro sistema operacional. Dessa forma, se alguém roubar o arquivo .pfx, não poderá usá-lo sem saber essa senha.

Ferramentas como o OpenSSL permitem converter um arquivo .pfx ou .p12 para PEM, obtendo-se assim um arquivo de texto onde é possível localizar facilmente o bloco da chave privada, o certificado do servidor e os certificados intermediários, e copiá-los para os locais apropriados (por exemplo, em um painel de hospedagem que aceita apenas CRT, KEY e CA separadamente).

Renovação, exportação e importação de certificados .pfx e .p12

Na área de certidões pessoais (por exemplo, as emitidas pela FNMT ou outras autoridades para fins de identificação), a forma de fazer backup e renová-las está intimamente ligada ao uso de Arquivos .pfx ou .p12, que viajam em cartões criptográficos, tokens USB ou diretamente como arquivos protegidos no computador.

Se o seu certificado pessoal ainda não expirou, muitas autoridades permitem Renove onlineA renovação é habilitada a partir do ponto de registro (associação profissional, empresa, provedor de serviços de certificação, etc.) e você recebe um link por e-mail para concluir o processo em seu próprio computador.

No entanto, se o certificado já expirou, normalmente você terá que... comparecer pessoalmente Dirija-se ao mesmo ponto de registro com seu cartão ou dispositivo criptográfico onde o certificado expirado está armazenado, identifique-se e solicite uma nova emissão, que você poderá exportar novamente no formato .pfx ou .p12 para importar onde precisar.

Em navegadores como Edge ou ChromeO processo de importação passa pelo Armazenamento de certificados do WindowsNas configurações de privacidade e segurança, você pode abrir o gerenciador de certificados, selecionar a guia Pessoal e importar um arquivo .pfx ou .p12. O assistente solicitará a senha do contêiner e oferecerá a opção de marcar a chave como exportável para backups futuros.

Se, em vez de um arquivo .pfx, você tiver um arquivo .cer sem chave privada (ícone de certificado sem chave), esse arquivo só será útil para instalar certificado público (Aparece em “Outras pessoas”), mas não para assinatura ou autenticação. Nesse caso, você não conseguirá recuperar a chave privada de lá e, se não tiver outra cópia válida, a única opção será solicitar um novo certificado.

Como esses formatos são usados ​​em certificados SSL de servidor

No trabalho diário com servidores web, VPNSeja utilizando proxies ou aplicações Java, os diferentes formatos de certificado usados ​​dependem do sistema e do tipo de instalação. Configurar o Apache no Linux não é o mesmo que configurar o IIS no Windows ou o Tomcat no Java.

Em ambientes Unix/Linux (Apache, Nginx, HAProxy, etc.) é normal trabalhar com Arquivos PEM Arquivos separados: um para a chave privada (.key), outro para o certificado do servidor (.crt ou .cer) e, às vezes, ainda outro com a string da CA intermediária. Todos esses arquivos são referenciados na configuração do servidor para estabelecer o TLS.

Em plataformas Windows (IIS, serviços de área de trabalho remota, etc.), é muito comum ser solicitado a fornecer um .pfx ou .p12 Contém o certificado, a chave privada e a cadeia de certificados. O assistente de importação se encarrega de colocar cada item em seu respectivo repositório, para que você não precise se preocupar com os detalhes internos.

Em ambientes Java (Tomcat, aplicações com seu próprio keystore), os armazenamentos são do tipo JKS ou PKCS#12Em muitos casos, um arquivo .pfx é importado diretamente, ou certificados .p7b são usados ​​para configurar a cadeia de confiança dentro de um keystore, dependendo da ferramenta e da versão do Java.

  Será que os chats com IA conseguem distinguir a verdade da mentira?

Ao adquirir um certificado SSL de um fornecedor terceirizado, você pode receber diversas combinações de arquivos: um arquivo CRT + CA no formato PEM, um arquivo .p7b contendo a string ou até mesmo um arquivo .pfx pré-configurado. O importante é identificar o tipo de arquivo correto. Onde está a chave privada? (caso já venha com você e não seja gerado pelo servidor) e qual arquivo contém o certificado do servidor e a cadeia intermediária.

Em painéis de controle de hospedagem, você normalmente precisará preencher os campos CRT, KEY e, opcionalmente, o certificado CA ou intermediário. Se você tiver apenas um arquivo .pfx, poderá convertê-lo para PEM usando o OpenSSL e extrair cada bloco, copiando cuidadosamente do BEGIN ao END de cada tipo.

Conversão entre formatos de certificado com OpenSSL

Depois de entender o que cada arquivo representa, o próximo passo lógico é saber... como convertê-los Quando o servidor ou aplicativo solicita um formato diferente daquele fornecido pelo seu provedor de internet ou autoridade certificadora, a ferramenta padrão para isso é o OpenSSL, disponível na maioria das distribuições Linux e também instalável no Windows.

Por exemplo, se você tiver um certificado em DER (.der, .cer) E se precisar convertê-lo para PEM, um único comando que pegue esse binário e o recodifique para Base64 com os cabeçalhos apropriados será suficiente. Da mesma forma, você pode transformar um PEM em DER se o seu sistema aceitar apenas binários.

Com um arquivo PKCS#7 (.p7b), você pode usar o OpenSSL para extrair os certificados em formato PEM com um comando simples que imprime os certificados contidos e os salva em um arquivo de texto. A partir daí, você separa os diferentes blocos BEGIN/END CERTIFICATE, caso precise de arquivos individuais.

No caso do PKCS#12 (.pfx, .p12), o OpenSSL permite converter o contêiner em um arquivo PEM contendo a chave privada e todos os certificados. Durante o processo, você será solicitado a inserir a senha do contêiner e poderá escolher se deseja manter a chave privada criptografada ou em texto simples dentro do arquivo PEM, dependendo da finalidade de uso.

Esses tipos de conversões possibilitam cenários como o envio de um arquivo .pfx para um servidor Linux, a conversão para PEM e, em seguida, a transferência para outro servidor. CRT e KEY separados Preencher um formulário de instalação SSL que não oferece suporte direto a contêineres PKCS#12.

Além das conversões diretas DER↔PEM, PEM↔PKCS#7, PKCS#7↔PKCS#12 e PKCS#12↔PEM, o mesmo utilitário pode gerar CSRs, gerenciar chaves, inspecionar certificados e verificar datas de expiração, tornando-se uma ferramenta básica em qualquer ambiente que trabalhe com certificados.

Tipos de certificados digitais e áreas de utilização

Além do formato do arquivo, também é útil ser claro sobre o tipos de certificados Dependendo da sua utilização ou do tipo de entidade que representam, isso influencia a forma como os seus backups, renovações e instalações são geridos.

No âmbito regulamentar europeu (Regulamento eIDAS), faz-se uma distinção entre Certificados eletrônicos "simples" e certificados qualificadosOs primeiros atendem aos requisitos básicos de identificação e emissão, enquanto os últimos exigem processos de verificação de identidade mais rigorosos e condições técnicas e organizacionais mais exigentes por parte do fornecedor. Um exemplo claro na Espanha seria o cartão de identidade eletrônico (DNIe).

Se analisarmos quem é o titular, podemos obter certificados de pessoa física, pessoa jurídica ou entidade sem personalidade jurídicaCada um é utilizado para assinar ou autenticar em diferentes áreas: procedimentos pessoais, transações em nome de uma empresa ou obrigações fiscais, respectivamente.

No mundo dos servidores web, a família de certificados mais conhecida é a dos Certificados SSL/TLSEsses certificados são instalados em servidores para criptografar o canal de comunicação com os usuários. Eles incluem variantes como certificados de domínio único, curinga e multidomínio (SAN), que diferem no número de nomes que abrangem e em seu nível de validação.

Independentemente do tipo, todos esses certificados podem acabar sendo armazenados e distribuídos nos mesmos formatos: arquivos .cer, .crt, .pem, .p7b ou contêineres .pfx/.p12, dependendo do sistema em que serão usados ​​e do método escolhido para transportá-los ou fazer backup.

A utilidade dos certificados digitais é enorme: Eles garantem confidencialidade e autenticidade. Em termos de comunicações, permitem assinaturas eletrônicas legalmente válidas, simplificam procedimentos administrativos e comerciais e possibilitam que vários serviços de rede funcionem com segurança, sem que o usuário precise se preocupar com detalhes criptográficos.

Neste ponto, fica claro que extensões como .pfx, .p12, .cer ou .crt são simplesmente maneiras diferentes de empacotar a mesma coisa: um certificado X.509, uma chave privada e, quando aplicável, uma cadeia de confiança, que, dependendo do ambiente, são representadas como texto Base64, binário DER ou contêineres PKCS para facilitar a instalação e a implantação. transporte entre sistemas.

Como gerenciar certificados digitais em diferentes navegadores da web
Artigo relacionado:
Como gerenciar certificados digitais em diferentes navegadores da web