ssl tls certificates pki ssh pgp security file-extensions

Guia Completo de Extensões de Arquivos de Certificados e Chaves: PEM, CRT, DER, PFX e mais

Confuso com as extensões de arquivos SSL/TLS, SSH e PGP? Aprenda as diferenças entre os arquivos .pem, .crt, .cer, .der, .key, .p12, .pfx, .p7b e .asc, e como abri-los ou convertê-los.

2026-04-11

Guia completo de extensões de arquivos de certificados e chaves: PEM, CRT, DER, PFX e muito mais

Se você já configurou um servidor web (como Nginx ou Apache), gerenciou chaves SSH ou trabalhou com assinaturas digitais, provavelmente encontrou uma confusão de extensões de arquivo: .pem, .crt, .cer, .der, .p12, .pfx, .key, .csr e muito mais.

São todos iguais? Você pode simplesmente renomeá-los? Este guia desmistificará essas extensões, explicará o que há dentro delas e mostrará como trabalhar com elas de forma eficaz.

Por que existem tantas extensões?

A confusão decorre de dois fatores principais:

  1. O Padrão (X.509): Este é o padrão internacional para certificados de chave pública.
  2. A Codificação: Como os dados do certificado são realmente armazenados no arquivo (ASCII Base64 vs. Binário).

Essencialmente, diferentes plataformas (Windows vs. Linux), diferentes servidores (IIS vs. Nginx) e diferentes protocolos (SSL/TLS vs. SSH vs. PGP) preferiram historicamente diferentes maneiras de armazenar a mesma informação criptográfica subjacente.


Tabela de referência rápida: extensões comuns de certificado e chave

Extensão Formato Descrição Uso comum
.pem ASCII (Base64) Privacy Enhanced Mail Servidores web (Nginx, Apache), certificados SSL/TLS, chaves privadas
.crt, .cer ASCII ou Binário Certificado Apenas certificados públicos (sem chaves privadas)
.der Binário Distinguished Encoding Rules Plataformas Java, Windows (muitas vezes usado para certificados CA específicos)
.key ASCII ou Binário Chave privada A chave privada correspondente a um certificado público
.csr ASCII (Base64) Certificate Signing Request O arquivo enviado a uma CA para solicitar um certificado assinado
.p12, .pfx Binário Arquivo PKCS#12 Agrupamento de um certificado e sua chave privada em um único arquivo protegido por senha
.p7b, .p7c ASCII (Base64) PKCS#7 / CMS Exportação de cadeias de certificados (sem chaves privadas)
.asc, .sig, .gpg ASCII ou Binário PGP / OpenPGP Assinaturas digitais, e-mails criptografados e verificação de software

1. Codificações de certificado X.509 (os "três grandes")

PEM (Privacy Enhanced Mail) — .pem, .crt, .cer, .key

Este é o formato mais comum que você encontrará em servidores Linux e Web. É um formato baseado em ASCII (texto) que começa com um cabeçalho como -----BEGIN CERTIFICATE----- e termina com -----END CERTIFICATE-----. Os dados entre eles são codificados em Base64.

  • Prós: Legível por humanos, fácil de copiar/colar em arquivos de configuração.
  • Uso da extensão: Embora .pem seja o padrão, muitas pessoas usam .crt ou .cer para certificados públicos e .key para chaves privadas, mesmo que tecnicamente todos estejam no formato PEM.

DER (Distinguished Encoding Rules) — .der, .cer

Esta é a versão binária de um arquivo PEM. Se você abri-lo em um editor de texto, verá caracteres "ilegíveis".

  • Prós: Mais compacto que o PEM.
  • Onde encontrá-lo: Comum em ambientes Java, exportações de certificados do Windows e alguns módulos de segurança de hardware (HSMs).

PKCS#12 (Personal Information Exchange) — .p12, .pfx

Ao contrário do PEM e do DER, que geralmente contêm um único certificado ou chave, o PKCS#12 é um formato de arquivo de arquivamento. Ele pode armazenar um certificado, sua chave privada e toda a cadeia da CA em um único arquivo protegido por senha.

  • Onde encontrá-lo: Padrão para Windows (IIS), Java (KeyStore) e Chaves do macOS.
  • Nota: .pfx é a antiga extensão da Microsoft, enquanto .p12 é o padrão multiplataforma mais recente, mas eles são funcionalmente idênticos.

2. Solicitação e extensões de metadados

CSR (Certificate Signing Request) — .csr

Isso não é um certificado em si. É uma solicitação que você gera em seu servidor (contendo sua chave pública e informações da organização) para enviar a uma Autoridade de Certificação (como Let's Encrypt, DigiCert). Eles a assinarão e enviarão de volta um arquivo .crt ou .pem.

PKCS#7 / CMS — .p7b, .p7c

Este formato é usado principalmente para compartilhar "cadeias de certificados". Ele pode conter seu certificado mais os certificados da CA intermediária e raiz. Ele nunca contém uma chave privada. Você verá isso com frequência ao baixar certificados de uma CA no formato "Windows" ou "IIS".


3. Extensões PGP e GPG

Se você estiver verificando downloads de software (como o kernel do Linux ou uma biblioteca popular), verá:

  • .asc: Um arquivo PGP com armadura ASCII (assinatura baseada em texto).
  • .sig, .gpg: Assinaturas ou chaves PGP binárias.
  • .pub: Frequentemente usado para denotar uma chave pública PGP.

4. Como abrir e verificar esses arquivos

No Linux / macOS / Windows (com OpenSSL)

O OpenSSL é o canivete suíço para esses arquivos. Aqui estão alguns comandos comuns:

Para visualizar um arquivo PEM (certificado público):

openssl x509 -in certificate.crt -text -noout

Para visualizar um arquivo DER (binário):

openssl x509 -in certificate.der -inform der -text -noout

Para visualizar um arquivo PKCS#12 (.p12 / .pfx):

openssl pkcs12 -info -in key-and-cert.p12

5. Convertendo entre formatos

As plataformas geralmente exigem formatos específicos. Veja como convertê-los:

PEM para DER:

openssl x509 -in cert.pem -outform der -out cert.der

DER para PEM:

openssl x509 -in cert.der -inform der -outform pem -out cert.pem

PEM para PFX (.p12): (Requer a combinação do certificado e da chave privada)

openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile CA-chain.crt

Perguntas frequentes (FAQ)

P: Posso apenas renomear um arquivo .pem para .crt?

R: Em muitos casos, sim. A maioria dos servidores web (como Nginx) procura pelo cabeçalho "BEGIN CERTIFICATE" dentro do arquivo em vez da extensão. No entanto, se a plataforma esperar um arquivo .der binário e você fornecer um arquivo .pem renomeado, ela falhará.

P: Qual é a diferença entre .p12 e .pfx?

R: Não há diferença funcional. .pfx era a extensão proprietária da Microsoft, enquanto .p12 é o padrão da indústria (PKCS#12). Ambos servem como recipientes protegidos por senha para certificados e chaves privadas.

P: Por que não consigo ver minha chave privada em um arquivo .p7b?

R: Porque o padrão PKCS#7 (usado por .p7b) é projetado especificamente para distribuição de certificados e não suporta o armazenamento de chaves privadas. Se você precisar agrupar uma chave privada, deverá usar o PKCS#12 (.p12).

P: Um arquivo .key é sempre uma chave privada?

R: Geralmente, mas nem sempre. Embora .key seja a extensão convencional para chaves privadas, alguns fornecedores a usam para chaves públicas ou até mesmo arquivos de licença. Sempre verifique o conteúdo (por exemplo, -----BEGIN PRIVATE KEY-----).


Ferramentas relacionadas no Tool3M

  • Gerador de Hash: Verifique a integridade dos seus arquivos de certificado baixados usando SHA-256.
  • Guia de Certificados SSL/TLS: Saiba mais sobre os protocolos de segurança subjacentes.