O que é o formato de ficheiro PEM?
A extensão de arquivo PEM é usada por arquivos de certificado para armazenar e transportar chaves criptográficas, certificados e outros tipos de dados. Os arquivos PEM são codificados em Base64 e armazenam dados no formato de texto ASCII - cada bloco é envolvido por linhas de cabeçalho e rodapé reconhecíveis, como -----BEGIN CERTIFICATE----- e -----END CERTIFICATE-----.
Arquivos de certificado codificados em PEM são frequentemente usados em servidores de internet, pois são fáceis de visualizar usando qualquer editor de texto padrão. Os arquivos PEM são usados para autenticar sites confiáveis e são o formato padrão em servidores web baseados em Unix, como Apache e Nginx. Um único arquivo .pem pode agrupar vários blocos - por exemplo, um certificado de servidor, certificados intermediários e uma chave privada - tudo em um único arquivo. O PEM também é amplamente utilizado para pares de chaves SSH e configuração TLS/HTTPS.
O certificado PEM usa uma chave pública assinada digitalmente para fins de segurança. O processo de autenticação usa a chave pública para identificar o proprietário da chave e confirmar que ele é quem afirma ser. Chaves privadas armazenadas em arquivos .pem podem, opcionalmente, ser protegidas com uma frase-passe para segurança adicional.
Originalmente projetado para Privacy-Enhanced Mail no início dos anos 1990, a codificação PEM foi formalizada como um padrão IETF na RFC 7468 (2015). Ele continua sendo o formato de contêiner mais amplamente utilizado para certificados X.509 e chaves criptográficas. Formatos binários relacionados incluem arquivos .DER e PKCS#12; arquivos .crt e .key são frequentemente apenas arquivos .pem renomeados contendo um certificado ou chave, respectivamente.
- Arquivos PEM são suportados pelo OpenSSL e pela maioria dos kits de ferramentas TLS/SSL.
- Abrir um arquivo
.pemcom um editor de texto mostra claramente as seções de cabeçalho e rodapé marcadas como-----BEGIN-----e-----END-----. - Um único arquivo
.pempode conter diferentes tipos de objetos:CERTIFICATE,PRIVATE KEY,RSA PRIVATE KEY,PUBLIC KEY,CERTIFICATE REQUEST, entre outros.
Segurança e proteção
RISCO: HIGHO perigo com o .pem está no caso da PRIVATE KEY. Um .pem contendo «-----BEGIN PRIVATE KEY-----» (ou RSA/EC PRIVATE KEY) é um segredo: qualquer pessoa que o possua pode se passar pelo seu servidor, descriptografar o tráfego ou fazer login na sua instância de nuvem. NUNCA cole um .pem de chave privada em um «visualizador/conversor PEM» online ou envie por e-mail; faça as conversões localmente com OpenSSL. Defina permissões estritas (o SSH recusa uma chave que seja legível por todos - «chmod 600 key.pem»). Um .pem que seja apenas um CERTIFICATE (público) é seguro para compartilhar. Desconfie de conversores de certificados online para qualquer coisa que envolva uma chave. Os arquivos em si são texto inerte e não podem ser executados.
Detalhes do formato
em resumoProgramas que abrem arquivos PEM
Detalhes técnicos
especificação profunda| Codificação | Dados DER codificados em Base64 envolvidos em linhas de cabeçalho e rodapé ASCII |
| Estrutura do arquivo | Um ou mais blocos PEM, cada um delimitado por linhas `-----BEGIN <type>-----` e `-----END <type>-----` |
| Formato binário subjacente | DER (Distinguished Encoding Rules), um formato de serialização binária ASN.1 |
| Tipo MIME | `application/x-pem-file` |
| Tipos de objetos suportados | `CERTIFICATE`, `PRIVATE KEY`, `RSA PRIVATE KEY`, `PUBLIC KEY`, `CERTIFICATE REQUEST` |
| Convenção de comprimento de linha | Dados Base64 quebrados em 64 caracteres por linha conforme a RFC 7468 |
| Suporte a múltiplos objetos | Um único arquivo `.pem` pode concatenar vários blocos PEM, como uma cadeia de certificados completa mais uma chave privada |
| Extensões alternativas comuns | `.crt`, `.cer`, `.key`, `.ca-bundle` - mesmo formato PEM, diferentes convenções de nomenclatura por função |
| Proteção de chave privada | Blocos de chave podem ser criptografados com uma frase-passe usando PKCS#8 ou cabeçalhos de criptografia PEM legados |
| Principais casos de uso | Certificados de servidor TLS/HTTPS, pares de chaves SSH, pacotes de certificados CA, certificados de assinatura de código |
| Interoperabilidade | Conversível para `.der` binário com `openssl x509 -outform DER`; arquivos PKCS#12 (`.p12`) podem ser exportados para PEM |
| Conjunto de caracteres | Apenas US-ASCII - alfabeto Base64 (A-Z, a-z, 0-9, +, /) além de traços de cabeçalho/rodapé e rótulos de tipo |
| Tratamento de quebra de linha | A RFC 7468 exige terminações de linha LF (\n); muitas ferramentas também aceitam CRLF para compatibilidade legada |
| Sintaxe de cabeçalho/rodapé | Cinco traços, `BEGIN` ou `END`, um espaço, o rótulo do tipo de objeto, cinco traços - ex: `-----BEGIN CERTIFICATE-----` |
| Lançado | PEM email RFCs 1421-1424 (1993); the encoding lives on as the textual format, codified in RFC 7468 (2015) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | www.rfc-editor.org |
Conversões de PEM
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos PEM.