Diferentes servidores y paneles de control pueden requerir certificados SSL en diferentes formatos de archivo. Para convertir los certificados de un formato a otro, puede utilizar el paquete OpenSSL generalmente disponible en máquinas Linux.
De hecho, los certificados que proporcionamos se emiten en formato x.509, que es la versión del estándar de codificación de archivos ASN.1. En este artículo hablaremos sobre los formatos de archivo que difieren según las reglas de codificación.
En conjunto, podemos diferenciar los siguientes formatos de archivos de certificados:
1) PEM es un certificado codificado en base64 colocado entre los encabezados —–BEGIN CERTIFICATE—– y —–END CERTIFICATE—–. Es el formato de certificado más extendido, utilizado principalmente por servidores basados en Linux, como Apache, Nginx, y por la mayoría de paneles de control de alojamiento web (cPanel, Plesk, DirectAdmin, WebMin, etc.). Los certificados PEM pueden tener las siguientes extensiones de archivo: *.pem, *.crt, *.cer. Comodo CA (ahora) envía sus certificados en PEM, si se elige cualquier tipo de servidor excepto 'Microsoft Internet Information Server' (Microsoft IIS) durante la activación del certificado.
2) PKCS#7 es otro certificado con codificación Base64 que utilizan generalmente los servidores Tomcat basados en Windows y Java, y puede contener un certificado de entidad final de dominio y certificados de cadena de CA. Si abre un archivo PKCS#7 en un editor de texto, puede ver el texto codificado entre las etiquetas —–BEGIN PKCS7—– y —–END PKCS7—–. Las extensiones más comunes son: *.p7b, *.p7s, *.cer. El certificado en formato PKCS#7 se puede recuperar de Comodo CA (ahora), si elige 'Microsoft Internet Information Server' como tipo de servidor durante la activación del certificado.
3) PKCS#12/PFX es un archivo en formato binario que contiene el certificado con su correspondiente clave privada y está protegido por contraseña. Opcionalmente, el archivo también puede incluir los certificados de la cadena de CA. Por lo general, los certificados PFX se utilizan en máquinas con Windows y son esenciales para transferir el certificado de un servidor de Windows a otro. Las extensiones de archivo son: *.p12 y *.pfx.
Para convertir los certificados a diferentes formatos, puede utilizar los siguientes comandos:
De PEM a PKCS#7:
openssl crl2pkcs7 -nocrl -certfile your_pem_certificate.crt -out your_pkcs7_certificate.p7b -certfile CA-bundle.crt
De PKCS#7 a PEM:
openssl pkcs7 -print_certs -in your_pkcs7_certificate.p7b -out your_pem_certificates.pem
Nota: Si el archivo PKCS#7 incluye los certificados de cadena, el archivo .pem recién generado también los incluirá, por separado.
De PEM a PFX:
openssl pkcs12 -export -out your_pfx_certificate.pfx -inkey your_private.key -in your_pem_certificate.crt -certfile CA-bundle.crt
También se le pedirá que especifique la contraseña para el archivo PFX. Asegúrese de recordar la contraseña, se utilizará cuando necesite importar el PFX a un nuevo servidor.
De PFX a PEM:
openssl pkcs12 -en your_pfx_certificate.pfx -out your_pem_certificates_and_key.pem -nodos
Se le pedirá que especifique la contraseña que se utilizó al crear el archivo PFX que está convirtiendo. El archivo PEM obtenido contendrá el certificado, los certificados de cadena (opcionalmente) y la clave privada.
De PKCS#7 a PFX:
Para convertir un certificado de PKCS#7 a PFX, primero se debe convertir el certificado a PEM:
openssl pkcs7 -print_certs -in your_pkcs7_certificate.p7b -out your_pem_certificates.pem
Después de eso, el certificado se puede convertir a PFX.
openssl pkcs12 -exportar -out your_pfx_certificate.pfx -inkey your_private.key -in your_pem_certificate.crt
Alternativamente, los certificados se pueden convertir usando este archivo .