Cómo convertir DER a PEM
- Suelta el archivo
.der,.cero.crten el cuadro. La entrada binaria se lee como bytes. En lugar de un archivo puedes pegar DER en Base64 de una sola línea, o hex como30 82 01 b7 …. - Deja Convertir a en PEM (64 columnas).
- Deja Etiqueta PEM en Detección automática. El convertidor lee el ASN.1 y escribe
CERTIFICATE,CERTIFICATE REQUEST,PUBLIC KEY,PRIVATE KEY, etc. Elige tú la etiqueta solo si una herramienta exige una concreta. - Marca Finales de línea de Windows (CRLF) si hace falta y luego usa Copiar salida o Descargar .pem.
Cambia a Inspeccionar para comprobar lo que has convertido: el sujeto, la caducidad y las huellas están en la tarjeta.
De dónde salen los archivos DER y el Base64 sin cabeceras
| Origen | Qué obtienes |
|---|---|
| Exportación de certificados de Windows, “DER encoded binary X.509 (.CER)” | DER binario |
keytool -exportcert de Java sin -rfc | DER binario |
| URL de CA Issuers en un certificado (la extensión AIA) | Normalmente un .cer en DER |
x5c en un JWK o JWKS | DER en Base64 de una línea por certificado |
<ds:X509Certificate> en metadatos SAML | DER en Base64, a veces con saltos de línea |
| Capturas de paquetes, herramientas de HSM y tarjetas inteligentes | Volcados hex |
Todos acaban en el mismo PEM. Un certificado DER de 443 bytes se convierte en un PEM de 656 bytes: 592 caracteres Base64 en diez líneas, más las líneas BEGIN y END.
El formato PEM en resumen
El RFC 7468 describe lo que esperan los analizadores, y la salida lo sigue:
-----BEGIN CERTIFICATE-----
MIIBtzCCAV2gAwIBAgIUfX6gOa1S96OttEsj3WbuIdu0cE0wCgYIKoZIzj0EAwIw
...64 characters per line, the last line shorter...
-----END CERTIFICATE-----
- La etiqueta de BEGIN y END debe coincidir exactamente.
- Las líneas del cuerpo son 64 caracteres de Base64 estándar con relleno
=. Se acepta una entrada en el alfabeto URL-safe (-y_) o sin relleno, y se escribe en la forma estándar. - Varios certificados en un archivo son bloques concatenados. Así se construyen
fullchain.pemy los paquetes de CA. Para crear uno, convierte cada certificado DER y pega los bloques uno detrás de otro, empezando por el certificado final.
DER a PEM con OpenSSL, Python y la 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
Las versiones antiguas de OpenSSL fallan con unable to load certificate si olvidas -inform der; las recientes detectan el DER por sí mismas. Para una cadena Base64 de una línea, como una entrada x5c:
{ echo '-----BEGIN CERTIFICATE-----'; echo "$B64" | fold -w 64; echo '-----END CERTIFICATE-----'; } > cert.pem
Python lo trae de serie: ssl.DER_cert_to_PEM_cert(open("cert.der", "rb").read()). Hay más recetas en las páginas de OpenSSL y Python.
Problemas habituales
- “No es PEM ni DER en Base64 válido” o “DER/ASN.1 no válido en el byte …”: el Base64 está dañado, truncado o no es DER. Un archivo
.p12o.pfxtambién es DER, pero su contenido está cifrado, así que conviértelo conopenssl pkcs12. - La etiqueta muestra
DATA: la estructura no se reconoció como certificado, clave ni solicitud. Los bytes se convierten igualmente; pon tú la etiqueta si sabes lo que son. - El archivo ya era PEM: algunos archivos
.cerson PEM a pesar de la extensión. La salida es entonces el mismo certificado con las líneas reajustadas, y no había nada más que convertir. El decodificador de certificados muestra lo que contiene. - Necesitas lo contrario: PEM a DER da una descarga
.der, Base64 de una línea o hex.
Preguntas frecuentes
¿Cómo sé si mi archivo .cer es DER o PEM?
Ábrelo en un editor de texto. Si ves texto legible -----BEGIN CERTIFICATE-----, es PEM; si es binario ilegible, es DER, y su primer byte es 0x30. El comando file de Linux y macOS imprime PEM certificate o Certificate, Version=3 en cada caso.
¿Cómo convierto el valor X509Certificate de unos metadatos SAML en un archivo PEM?
Pega en el cuadro el texto Base64 de <ds:X509Certificate>. Es DER sin cabeceras, así que el convertidor añade -----BEGIN CERTIFICATE-----, lo corta a 64 caracteres y cierra el bloque.
¿Puedo convertir aquí una clave privada DER a PEM?
Sí. Las claves PKCS#8, RSA PKCS#1 y EC SEC1 se detectan y reciben la etiqueta correspondiente, como PRIVATE KEY o EC PRIVATE KEY. La conversión es local y los valores de la clave no se muestran en la página.
¿Cuándo debo marcar Finales de línea de Windows (CRLF)?
Solo cuando una herramienta de Windows o un analizador estricto rechace el archivo. La mayoría del software acepta los dos, y el RFC 7468 permite cualquiera de los dos finales de línea en PEM.