Como converter DER para PEM
- Arraste o arquivo
.der,.cerou.crtpara a caixa. A entrada binária é lida como bytes. Em vez de um arquivo, você pode colar DER em Base64 de uma linha, ou hex como30 82 01 b7 …. - Mantenha Converter para em PEM (64 colunas).
- Deixe Rótulo PEM em Detectar automaticamente. O conversor lê o ASN.1 e escreve
CERTIFICATE,CERTIFICATE REQUEST,PUBLIC KEY,PRIVATE KEYe assim por diante. Escolha um rótulo à mão só se alguma ferramenta insistir em um específico. - Marque Quebras de linha do Windows (CRLF) se precisar e depois use Copiar saída ou Baixar .pem.
Mude para Inspecionar para conferir o que você converteu: titular, validade e fingerprints aparecem no cartão.
De onde vêm arquivos DER e Base64 sem cabeçalho
| Origem | O que você recebe |
|---|---|
| Exportação de certificado do Windows, “X.509 binário codificado em DER (.CER)” | DER binário |
keytool -exportcert do Java sem -rfc | DER binário |
| URL de CA Issuers em um certificado (a extensão AIA) | Geralmente um .cer em DER |
x5c em um JWK ou JWKS | DER em Base64 de uma linha por certificado |
<ds:X509Certificate> em metadados SAML | DER em Base64, às vezes com quebras de linha |
| Capturas de pacotes, ferramentas de HSM e smart card | Dumps hex |
Tudo isso vira o mesmo PEM. Um certificado DER de 443 bytes se transforma em um PEM de 656 bytes: 592 caracteres Base64 em dez linhas, mais as linhas BEGIN e END.
O formato PEM em resumo
A RFC 7468 descreve o que os parsers esperam, e a saída segue essa especificação:
-----BEGIN CERTIFICATE-----
MIIBtzCCAV2gAwIBAgIUfX6gOa1S96OttEsj3WbuIdu0cE0wCgYIKoZIzj0EAwIw
...64 characters per line, the last line shorter...
-----END CERTIFICATE-----
- O rótulo em BEGIN e END precisa ser exatamente igual.
- As linhas do corpo têm 64 caracteres de Base64 padrão, com preenchimento
=. Entrada no alfabeto URL-safe (-e_) ou sem preenchimento é aceita e escrita na forma padrão. - Vários certificados em um arquivo são simplesmente blocos concatenados. É assim que
fullchain.peme pacotes de CA são montados. Para montar um, converta cada certificado DER e cole os blocos um depois do outro, começando pelo certificado folha.
DER para PEM com OpenSSL, Python e o shell
openssl x509 -inform der -in cert.cer -out cert.pem
openssl pkey -inform der -in key.der -out key.pem
openssl req -inform der -in app.der -out app.csr
Versões antigas do OpenSSL falham com unable to load certificate se você esquecer o -inform der; as recentes detectam DER sozinhas. Para uma string Base64 de uma linha, como uma entrada x5c:
{ echo '-----BEGIN CERTIFICATE-----'; echo "$B64" | fold -w 64; echo '-----END CERTIFICATE-----'; } > cert.pem
O Python já tem isso pronto: ssl.DER_cert_to_PEM_cert(open("cert.der", "rb").read()). Mais receitas nas páginas de OpenSSL e Python.
Problemas comuns
- “Não é PEM nem DER válido em Base64” ou “DER/ASN.1 inválido no byte …”: o Base64 está danificado, truncado ou não é DER. Um arquivo
.p12ou.pfxtambém é DER, mas o conteúdo é criptografado, então converta-o comopenssl pkcs12. - O rótulo aparece como
DATA: a estrutura não foi reconhecida como certificado, chave ou solicitação. Os bytes são convertidos mesmo assim; defina o rótulo você mesmo se souber o que eles são. - O arquivo já era PEM: alguns arquivos
.cersão PEM apesar da extensão. A saída é então o mesmo certificado, com nova quebra de linhas, e não havia mais nada a converter. O decodificador de certificados mostra o que há dentro. - Você precisa do inverso: PEM para DER gera um download
.der, Base64 de uma linha ou hex.
Perguntas frequentes
Como saber se meu arquivo .cer é DER ou PEM?
Abra em um editor de texto. Texto legível -----BEGIN CERTIFICATE----- indica PEM; binário ilegível indica DER, e o primeiro byte é 0x30. O comando file no Linux e no macOS imprime PEM certificate ou Certificate, Version=3 nos dois casos.
Como transformar o valor X509Certificate dos metadados SAML em um arquivo PEM?
Cole na caixa o texto Base64 de <ds:X509Certificate>. Ele é DER sem cabeçalhos, então o conversor adiciona -----BEGIN CERTIFICATE-----, quebra em 64 caracteres e fecha o bloco.
Dá para converter uma chave privada DER para PEM aqui?
Dá. Chaves PKCS#8, PKCS#1 RSA e SEC1 EC são detectadas e recebem o rótulo correspondente, como PRIVATE KEY ou EC PRIVATE KEY. A conversão é local, e os valores da chave não aparecem na página.
Quando marcar Quebras de linha do Windows (CRLF)?
Só quando uma ferramenta do Windows ou um parser rígido rejeitar o arquivo. A maioria dos softwares aceita os dois formatos, e a RFC 7468 permite qualquer um dos finais de linha em PEM.