# PEM

> PEM é um formato de arquivo em texto usado para guardar certificados digitais, chaves privadas e chaves públicas. O conteúdo binário é convertido em Base64 e delimitado por linhas como BEGIN CERTIFICATE e END CERTIFICATE. Na emissão fiscal, é comum converter o certificado A1, entregue em PFX, para PEM ao integrar sistemas com a SEFAZ.

**Também conhecido como:** Formato PEM, Arquivo .pem, Certificado em PEM, Chave em PEM, PEM, Privacy-Enhanced Mail

**Glossário:** [Glossário de A a Z](https://conota.dev/glossario/) · **Letra:** P

## O que significa PEM?

PEM é a sigla de Privacy-Enhanced Mail, um padrão criado para proteger mensagens de e-mail. O padrão de e-mail em si não se popularizou, mas a forma de representar certificados e chaves que ele definiu acabou adotada por servidores, bibliotecas de criptografia e linguagens de programação.

Hoje, quando alguém fala em arquivo PEM, está se referindo apenas a esse formato de texto para material criptográfico, sem relação direta com e-mail.

## Como é um arquivo PEM por dentro?

Um arquivo PEM é texto puro e pode ser aberto em qualquer editor. Ele começa com uma linha de abertura, como —–BEGIN CERTIFICATE—–, segue com várias linhas de caracteres em Base64 e termina com uma linha de fechamento, como —–END CERTIFICATE—–.

O rótulo entre os traços indica o que está guardado ali: CERTIFICATE para um certificado, PRIVATE KEY para uma chave privada, ENCRYPTED PRIVATE KEY para uma chave privada protegida por senha, PUBLIC KEY para uma chave pública. Um mesmo arquivo pode conter vários blocos, por exemplo o certificado do emitente seguido dos certificados intermediários da cadeia.

As extensões mais comuns são .pem, .crt, .cer e .key. A extensão, porém, não garante o formato: um .cer pode estar em PEM ou em DER, que é a versão binária do mesmo conteúdo.

## Qual a diferença entre PEM e PFX?

O PFX (também chamado de PKCS#12) é um arquivo binário que funciona como um cofre: reúne o certificado, a chave privada e, às vezes, a cadeia de certificação, tudo protegido por uma senha. É o formato em que o certificado digital A1 costuma ser entregue pela Autoridade Certificadora.

O PEM é texto e normalmente separa as peças: o certificado fica em um bloco ou arquivo e a chave privada em outro. A chave em PEM pode estar com ou sem senha. Em resumo, o conteúdo pode ser o mesmo; o que muda é a forma de empacotar e o nível de proteção padrão.

## Por que o PEM aparece na emissão de notas fiscais?

Para emitir NF-e, NFC-e, CT-e, MDF-e e muitas NFS-e, o sistema precisa assinar o XML com o certificado do emitente e, em geral, se conectar aos webservices do fisco usando esse mesmo certificado na comunicação segura (HTTPS com autenticação do cliente).

Várias bibliotecas e ambientes, especialmente em Node.js, Python, PHP e servidores web, esperam o certificado e a chave em PEM, e não em PFX. Por isso, desenvolvedores que constroem a própria integração costumam converter o A1 de PFX para PEM antes de usá-lo.

Quando a empresa usa uma API fiscal, essa conversão normalmente é feita pelo próprio serviço: o cliente envia o PFX e a senha, e a plataforma cuida do armazenamento e do uso correto do certificado em cada emissão.

## Como converter um certificado PFX para PEM?

A ferramenta mais usada para isso é o OpenSSL, disponível em linha de comando. Com o comando pkcs12, ele lê o arquivo PFX, pede a senha e grava o certificado e a chave privada em formato PEM, juntos ou em arquivos separados.

Também é possível fazer a conversão dentro do próprio código, usando bibliotecas de criptografia da linguagem escolhida. Depois de converter, vale conferir se o arquivo tem os blocos esperados e se o certificado ainda está dentro do prazo de validade.

## Quais cuidados de segurança o PEM exige?

Como é texto, um arquivo PEM é fácil de copiar, colar em mensagens ou subir por engano para um repositório de código. Se a chave privada vazar, alguém pode assinar documentos fiscais em nome da empresa.

Boas práticas incluem manter a chave privada protegida por senha, guardá-la em um cofre de segredos em vez de deixá-la no código, restringir quem tem acesso e apagar cópias temporárias criadas durante a conversão.

## Exemplos de PEM

- Um desenvolvedor de ERP em Node.js converte o certificado A1 do cliente de PFX para PEM para conseguir assinar o XML da NF-e com a biblioteca de criptografia que já usa no projeto.
- Uma equipe configura a conexão HTTPS com o webservice de uma prefeitura informando dois arquivos: cert.pem com o certificado e key.pem com a chave privada do emitente da NFS-e.
- Ao revisar o repositório, um time encontra um arquivo .pem com a chave privada da empresa versionado por engano, remove o arquivo, revoga o certificado e passa a guardar a chave em um gerenciador de segredos.
- Um marketplace que emite documentos por meio de uma API fiscal apenas envia o PFX e a senha de cada vendedor, sem precisar lidar com PEM, porque a plataforma faz o tratamento do certificado.

## Perguntas frequentes

### Posso enviar um certificado PEM direto para a SEFAZ?

A SEFAZ não recebe o arquivo PEM em si. O certificado é usado pelo seu sistema para assinar o XML e para autenticar a conexão HTTPS. O formato do arquivo só importa para a biblioteca ou serviço que fará essa assinatura e conexão.

### Um arquivo PEM serve como certificado A1?

Sim, desde que contenha o certificado e a chave privada do A1. O conteúdo é o mesmo do PFX, apenas em outro formato. Sem a chave privada, o arquivo serve só para identificar o certificado, não para assinar documentos.

### Como saber se um arquivo está em PEM?

Abra-o em um editor de texto. Se aparecerem linhas como -----BEGIN CERTIFICATE----- ou -----BEGIN PRIVATE KEY----- seguidas de caracteres legíveis, é PEM. Se aparecerem símbolos ilegíveis, provavelmente é um formato binário, como DER ou PFX.

### Dá para converter PEM de volta para PFX?

Sim. Com o certificado e a chave privada em PEM, ferramentas como o OpenSSL geram um novo arquivo PFX protegido por senha, que pode ser usado em sistemas que exigem esse formato.

## Termos relacionados

- [Arquivo PFX](https://conota.dev/glossario/arquivo-pfx.md)
- [Certificado digital A1](https://conota.dev/glossario/certificado-digital-a1.md)
- [Base64 no envio de certificados](https://conota.dev/glossario/base64-no-envio-de-certificados.md)
- [Assinatura digital do XML](https://conota.dev/glossario/assinatura-digital-do-xml.md)
- [Cadeia de certificação digital](https://conota.dev/glossario/cadeia-de-certificacao-digital.md)
- [Gerenciamento de segredos](https://conota.dev/glossario/gerenciamento-de-segredos.md)

---

Fonte: [PEM](https://conota.dev/glossario/pem/) · Atualizado em 2026-10-22
