Como convertir archivo .pem para instalar su certificado TLS/SSL

¿Qué es un archivo .pem y por qué es la base?

El formato PEM es el estándar base de la mayoría de los certificados TLS/SSL. Se trata de un archivo de texto plano codificado en Base64, delimitado por líneas tipo -----BEGIN CERTIFICATE----- / -----END CERTIFICATE----- (o, en el caso de una clave privada, -----BEGIN PRIVATE KEY-----). Si abre un archivo en un editor de texto y ve ese tipo de encabezado, sin importar si su extensión es .cer, .crt, .pem, .ca-bundle o .key, está en formato PEM.

El proveedor (la CA) le entrega el certificado emitido para su dominio (.crt) y la cadena de intermedios/raíz (.ca-bundle). La CA nunca tiene acceso ni maneja su clave privada —esta se genera localmente al crear el CSR y no se comparte en ningún momento del proceso de emisión—, por lo que el formato pfx solo puede generarse del lado del cliente.

  • .crt / .cer: contiene un solo certificado (el de su dominio), pero la extensión no garantiza el formato: puede ser PEM (texto) o DER (binario). Ábralo en un editor de texto: si ve -----BEGIN CERTIFICATE----- es PEM y puede usarlo directo; si ve contenido ilegible/binario, es DER y primero hay que convertirlo con OpenSSL.
  • .ca-bundle: es un PEM que ya contiene varios certificados concatenados (intermedios, y a veces la raíz).
  • .pfx / .p12: es un contenedor binario (PKCS#12) que empaqueta certificado + clave privada + intermedios en un solo archivo. No es PEM, pero puede convertirse a PEM con OpenSSL.
  • .key: es un PEM que contiene la clave privada, identificable por su propio encabezado (-----BEGIN PRIVATE KEY----- o -----BEGIN RSA PRIVATE KEY-----), distinto al de un certificado.

Por eso, cuando un servidor le pida un .pem, en realidad le está pidiendo que una en un solo archivo de texto las partes que ya tiene: certificado del dominio + intermedios, en el orden correcto (sin la raíz, salvo que el proveedor la pida expresamente: el cliente/navegador ya confía en ella por su cuenta). Esta guía parte desde ese concepto: todo es PEM, solo hay que saber qué pegar y en qué orden.

Antes de comenzar:

Verifique cuál o cuáles son los certificados intermedios correspondientes según el tipo de certificado que posee y el orden en el que debe incluirlos en el .pem.
Para poder armar su .pem deberá abrir los certificados recibidos en su .zip con un editor de texto. Puede hacerlo haciendo click derecho > abrir con > bloc de notas o Notepad++.

Aquí podrá encontrar el nombre de cada .crt a incluir en su .pem de acuerdo a su tipo de certificado:

Certificados EV
  • RSA:
  • Su certificado: Certificado de Dominio
  • Intermedio 1: SectigoPublicServerAuthentication CAEVR36.crt
  • Intermedio 2: SectigoPublicServerAuthenticationRootR46_USERTrust.crt
  • Raíz: USERTrustRSACertificationAuthority.crt
  • ECC:
  • Su certificado: Certificado de Dominio
  • Intermedio 1: SectigoPublicServerAuthentication CAEVE36.crt
  • Intermedio 2: SectigoPublicServerAuthenticationRootE46_USERTrust.crt
  • Raíz: USERTrustECCCertificationAuthority.crt
Certificados OV
  • RSA:
  • Su certificado: Certificado de Dominio
  • Intermedio 1: SectigoPublicServerAuthentication CAOVR36.crt
  • Intermedio 2: SectigoPublicServerAuthenticationRootR46_USERTrust.crt
  • Raíz: USERTrustRSACertificationAuthority.crt
  • ECC:
  • Su certificado: Certificado de Dominio
  • Intermedio 1: SectigoPublicServerAuthenticationCAOVE36.crt
  • Intermedio 2: SectigoPublicServerAuthenticationRootE46_USERTrust.crt
  • Raíz: USERTrustECCCertificationAuthority.crt
Certificados DV
  • RSA:
  • Su certificado: Certificado de Dominio
  • Intermedio 1: SectigoPublicServerAuthenticationCADVR36.crt
  • Intermedio 2: SectigoPublicServerAuthenticationRootR46_USERTrust.crt
  • Raíz: USERTrustRSACertificationAuthority.crt
  • ECC:
  • Su certificado: Certificado de Dominio
  • Intermedio 1: SectigoPublicServerAuthenticationCADVE36.crt
  • Intermedio 2: SectigoPublicServerAuthenticationRootE46_USERTrust.crt
  • Raíz: USERTrustECCCertificationAuthority.crt
Para certificados emitidos con la raíz anterior (desde Mayo 2020 hasta Abril 2025) estos serán los nombres de los .crt y el orden a pegar en su .pem
Certificados EV
  • Su certificado: Certificado de Dominio
  • Intermedio 1: SectigoRSAExtendedValidationSecureServerCA.crt
  • Intermedio 2: USERTrustRSA-AAACA-xSign.crt
  • Raíz: AAACertificateServices.crt
Certificados OV
  • Su certificado: Certificado de Dominio
  • Intermedio 1: SectigoRSAOrganizationValidationSecureServerCA.crt
  • Intermedio 2: USERTrustRSA-AAACA-xSign.crt
  • Raíz: AAACertificateServices.crt
Certificados DV
  • Su certificado: Certificado de Dominio
  • Intermedio 1: SectigoRSADomainValidationSecureServerCA.crt
  • Intermedio 2: USERTrustRSA-AAACA-xSign.crt
  • Raíz: AAACertificateServices.crt

  1. Una vez emitido su certificado recibirá el mismo en formato .zip, junto a los certificado/s intermedio/s y la raíz.

    • Certificado de dominio: su_dominio.crt
    • Intermedio(s): intermedio.crt (puede haber más de uno, verifique los nombres y el orden).
    • Raíz: raiz.crt


  2. Abra un editor de texto (Bloc de notas o Notepad++ por ejemplo) y pegue el contenido completo (pegar exactamente, incluyendo las líneas BEGIN/END) de cada certificado en un solo archivo de texto en el siguiente orden:

    1. Certificado de dominio (su_dominio.crt)
    2. Intermedio(s) (intermedio.crt) (puede haber más de uno, verifique los nombres y el orden).
    3. Raíz (raiz.crt)

  3. Guarde como su_dominio.pem.

Nota: Algunos servidores requieren el orden inverso (Raíz → Intermedio/s → Cert. de dominio). Verificar la documentación antes de instalar su certificado.
-----BEGIN CERTIFICATE-----
... (Certificado de dominio: su_dominio.crt) ...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
... (Certificado/s intermedio/s: intermedio.crt) ...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
... (Certificado raíz: raiz.crt) ...
-----END CERTIFICATE-----
            

  1. Una vez emitido su certificado recibirá el mismo en formato .zip, junto a los certificado/s intermedio/s y la raíz.

    • Certificado de dominio: su_dominio.crt
    • Intermedio(s): intermedio.crt (puede haber más de uno, verifique los nombres y el orden)
    • Raíz: raiz.crt


  2. Abra un editor de texto (Bloc de notas o Notepad++ por ejemplo) y pegue el contenido completo (pegar exactamente, incluyendo las líneas BEGIN/END) de cada certificado en un solo archivo de texto en el siguiente orden:

    1. Certificado de dominio (su_dominio.crt)
    2. Intermedio(s) (intermedio.crt) (puede haber más de uno, verifique los nombres y el orden)

  3. Guarde como su_dominio.pem
-----BEGIN CERTIFICATE-----
... (Certificado de dominio: su_dominio.crt) ...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
... (Certificado/s intermedio/s: intermedio.crt) ...
-----END CERTIFICATE-----
            

  1. Una vez emitido su certificado recibirá el mismo en formato .zip, junto a los certificado/s intermedio/s y la raíz.

    • Certificado de dominio: su_dominio.crt
    • Intermedio(s): intermedio.crt (puede haber más de uno, verifique los nombres y el orden).
    • Raíz: raiz.crt


  2. Abra un editor de texto (Bloc de notas o Notepad++ por ejemplo) y pegue el contenido completo (pegar exactamente, incluyendo las líneas BEGIN/END) de cada certificado en un solo archivo de texto en el siguiente orden:

    1. Su llave privada (su_key.key)
    2. Certificado de dominio (su_dominio.crt)
    3. Intermedio(s) (intermedio.crt) (puede haber más de uno, verifique los nombres y el orden).
    4. Raíz (raiz.crt)
  3. Guarde como su_dominio.pem y proteja el archivo (permisos 600 en Linux).
-----BEGIN RSA PRIVATE KEY-----
... (Su clave privada: su_key.key) ...
-----END RSA PRIVATE KEY-----

-----BEGIN CERTIFICATE-----
... (Certificado de dominio: su_dominio.crt) ...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
... (Certificado/s intermedio/s: intermedio.crt) ...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
... (Certificado raíz: raiz.crt) ...
-----END CERTIFICATE-----
            
Precaución: manejar la clave privada con seguridad. No suba archivos con la clave a repositorios públicos.

Algunos servidores o dispositivos antiguos solicitan únicamente el certificado raíz en formato .pem. Esto no es lo habitual, pero puede ocurrir.

  1. Localice el archivo de la raíz: raiz.crt.
  2. Ábralo con un editor de texto y copie todo el bloque -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----.
  3. Péguelo en un archivo nuevo y guárdelo como raiz.pem.
Importante: la mayoría de los servidores NO necesitan la raíz por separado. Verifique la documentación antes de instalar solo la raíz.


Información sobre formatos de certificados

  • El formato DER es binario y no contiene las líneas BEGIN CERTIFICATE / END CERTIFICATE. Extensión: .der.
  • PKCS#7 / P7B se almacena en Base64, solo contiene certificados y CA intermedias.
  • PKCS#12 / PFX es binario y puede contener certificado, intermedios y clave privada. Extensiones: .pfx, .p12.

¿Cómo obtener los archivos .crt, .key y la cadena de intermedios?

Los archivos necesarios se reciben siempre en un paquete comprimido (.zip) al finalizar la emisión del certificado. El contenido exacto de ese ZIP depende del sistema donde haya generado el CSR:

  • Si generó el CSR en Linux (Apache, Nginx, cPanel): El ZIP contendrá:
    • Su certificado de dominio: su_dominio.crt
    • El archivo CA Bundle: su_dominio.ca-bundle (este archivo ya contiene todos los intermedios y la raíz concatenados en el orden correcto).
    En este caso, no necesita buscar los intermedios por separado; ya vienen dentro del .ca-bundle.
  • Si generó el CSR en Windows (IIS): El ZIP contendrá:
    • Su certificado de dominio: su_dominio.crt (o .cer)
    • Los certificados intermedios por separado, como SectigoPublicServerAuthenticationCADVR36.crt, USERTrustRSACertificationAuthority.crt, etc.).
    En este caso, deberá importar los intermedios manualmente en el almacén de certificados de Windows, o armar usted mismo la cadena si es necesario.

La clave privada (.key) nunca se envía en el ZIP. Esta se generó en su servidor junto con el CSR y debe conservarla usted. Guárdela en un lugar seguro y no la comparta con nadie.

Método OpenSSL:

openssl x509 -in nombredelcertificado.cer -outform PEM -out nombredelcertificado.pem

Método manual (Bloc de notas o Notepad++):

  1. Abra nombredelcertificado.cer con Bloc de notas o Notepad++.
  2. Copie todo el bloque -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----.
  3. Péguelo en un nuevo archivo y guárdelo como nombredelcertificado.pem.
Nota: Si el archivo .cer ya está codificado en Base64 (contiene las líneas BEGIN/END), simplemente puede renombrarlo a .pem.

Método OpenSSL:

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

Método manual:

No se recomienda para DER, ya que es un formato binario y no puede editarse como texto. Use OpenSSL.

Método OpenSSL:

openssl x509 -inform der -in nombredelcertificado.der -out nombredelcertificado.pem

Método manual:

No aplicable, ya que el formato DER es binario y no puede editarse con un editor de texto. Use OpenSSL.

Método OpenSSL:

openssl crl2pkcs7 -nocrl -certfile nombredelcertificado.pem -out nombredelcertificado.p7b

Método manual:

Cree un archivo de texto con los certificados necesarios y guárdelo con extensión .p7b. Debe incluir solo certificados, no la clave privada.

Método OpenSSL:

openssl pkcs7 -print_certs -in nombredelcertificado.p7b -out nombredelcertificado.pem

Si el P7B está codificado en DER, agregue -inform DER:

openssl pkcs7 -print_certs -in nombredelcertificado.p7b -inform DER -out nombredelcertificado.pem

Método manual:

Abra el P7B con un editor compatible, copie los bloques de certificados y guárdelos con extensión .pem.

Método OpenSSL:

openssl pkcs12 -in nombredelcertificado.pfx -out nombredelcertificado.pem

Para extraer solo el certificado (sin clave privada):

openssl pkcs12 -in nombredelcertificado.pfx -nokeys -out nombredelcertificado.pem

Para extraer solo la clave privada:

openssl pkcs12 -in nombredelcertificado.pfx -nocerts -nodes -out clave.pem

Método manual:

No recomendable, PFX contiene clave privada y binario; use OpenSSL.

PASO 1: Convertir PFX a PEM

openssl pkcs12 -in nombredelcertificado.pfx -nocerts -nodes -out nombredelcertificado.pem

PASO 2: Convertir PEM a PKCS8

openssl pkcs8 -in nombredelcertificado.pem -topk8 -nocrypt -out nombredelcertificado.pk8

Método manual:

No recomendable, PKCS#8 requiere OpenSSL.

Método OpenSSL:

openssl pkcs8 -in nombredelcertificado.pem -topk8 -nocrypt -out nombredelcertificado.pk8

Método manual:

No recomendable, PKCS#8 requiere OpenSSL.

PASO 1: Convertir P7B a CER/PEM

openssl pkcs7 -print_certs -in nombredelcertificado.p7b -out nombredelcertificado.pem

PASO 2: Convertir PEM y clave privada a PFX

openssl pkcs12 -export -in nombredelcertificado.pem -inkey claveprivada.key -out nombredelcertificado.pfx -certfile cacert.pem

Método manual:

No recomendable, PFX es binario y contiene clave privada.