Es bastante fácil entender qué es un certificado SSL y cómo funciona. Pero cuando se trata de instalarlo en un servidor, a veces puede parecer que se trata de ciencia espacial.
Con tantos formatos de certificados SSL vinculados a requisitos específicos del servidor, es más probable que se confunda y se frustre en lugar de configurar su certificado correctamente desde el principio. Pero eso está a punto de cambiar.
En esta completa guía, analizaremos cada formato de certificado SSL y las extensiones de archivo de los certificados y le mostraremos dos formas de convertir los distintos tipos de archivo.
Índice
- Formatos de archivos de certificado – Conceptos básicos
- Formatos y extensiones de archivo de los certificados SSL
- Conversión de formatos SSL
Formatos de archivos de certificado – Conceptos básicos
Empecemos por lo básico. Todos los certificados SSL son Certificados x.509. Se trata del formato estándar de los certificados de clave pública expresado en un lenguaje formal denominado Notación de Sintaxis Abstracta Uno. No profundizaremos más en la estructura X.509; puedes leer sobre ella en Wiki. Estamos aquí para hablar de formatos de certificados SSL como DER, PEM, PKCS#7 y PKCS#12.
Una forma fácil de distinguirlos es fijarse en su codificación.
PEM y PKCS#7 utilizan la codificación Base ASCII (American Standard Code for Information Interchange). Se trata de un estándar popular para archivos que contienen texto.
DER y PKCS#12 utilizan codificación binaria, un sistema numérico de base 2 compuesto únicamente por ceros y unos.
Debido a los diferentes formatos y codificaciones, los certificados SSL tienen muchas extensiones de archivo.
Formatos y extensiones de archivos de certificados SSL
Examinemos detenidamente cada formato y sus extensiones de archivo de certificado SSL. Descubrirá el significado de cada acrónimo y qué sistema lo utiliza más.
Formato DER
DER son las siglas de Distinguished Encoding Rules, un formato de codificación binaria, raramente utilizado fuera de Windows. Está contenido en archivos .der o .cer.
Formato PEM
PEM es el formato de certificado SSL más popular y el que probablemente encontrará. La mayoría de las CA ofrecen certificados SSL en formato PEM con diferentes extensiones de archivo de certificado como .pem, .crt, .cer o .key.
PEM son las siglas de Privacy-Enhanced Email (correo electrónico con privacidad mejorada), y quizá se pregunte qué tiene que ver el correo electrónico con un certificado SSL. Resumiendo, PEM fracasó en su función principal, pero encontró su aplicación como formato contenedor.
En esencia, los archivos PEM son archivos DER codificados en Base64 en los que los ceros y unos se codifican en una secuencia de caracteres imprimibles. Así podrá abrirlos con cualquier editor de texto, incluido el Bloc de notas.
Un único archivo .pem puede contener el certificado del servidor, el certificado intermedio y la clave privada. Alternativamente, puede recibir sus certificados de servidor e intermedio en un archivo .crt o .cer separado, mientras que su clave privada puede residir en un archivo .key.
Formato PKCS#7
PKCS son las siglas de Public Key Cryptography Standards (normas decriptografía de clave pública).
PKCS#7 es un formato de certificado SSL polivalente para la distribución de datos cifrados. Se utiliza sobre todo en plataformas Windows y Java Tomcat.
En la actualidad, utilizamos su sucesor CMS (Cryptographic Message Syntax), pero al igual que con SSL y TLS, el antiguo nombre se ha vuelto demasiado familiar como para sustituirlo.
PKSC#7 tiene dos extensiones de archivo: .p7b, o p7c. A diferencia de PEM, PKCS#7 no puede almacenar claves privadas, sólo certificados primarios e intermedios.
Formato PKCS#12
PKCS#12 es otro estándar de criptografía pública con mayor seguridad. Al igual que un archivo PEM, puede incluir toda la cadena de certificados SSL y el par de claves en un único archivo .pfx. La principal diferencia es que PCKS#12 es un contenedor protegido por contraseña.
Algunos sistemas de servidor le piden que introduzca una contraseña durante la generación de la CSR, y puede utilizarla para abrir archivos .pfx.
Conversión de formatos SSL
Ahora que ya conoce los formatos de los certificados SSL y sus múltiples extensiones de archivo de certificado, ha llegado el momento de revelarle lo que realmente estaba esperando: cómo convertir un certificado SSL a cualquier formato.
Como ocurre con la mayoría de las conversiones de archivos, hay distintas formas de abordarlas. La más rápida es utilizar una herramienta de conversión automática de SSL. Todo lo que tiene que hacer es elegir la operación deseada, por ejemplo, conversión de PEM a PKCS#7, cargar los archivos y pulsar Convertir.
También puede utilizar la biblioteca de software gratuita OpenSSL para convertir sus archivos SSL. Esta utilidad habilita el protocolo SSL/TLS en casi cualquier servidor existente. Muchas plataformas y distribuciones de Linux vienen con la utilidad OpenSSL preinstalada. Para Windows, tendrás que obtener el paquete de instalación.
Convertir X.509 a PEM
Para convertir X.509 a PEM, ejecute el siguiente comando en OpenSSL:
openssl x509 -in nombrecertificado.cer -outform PEM -out nombrecertificado.pem
Convertir DER en PEM
Codificación binaria a Base64 ASCII.
Para convertir DER a PEM, ejecute el siguiente comando:
openssl x509 -inform der -in nombrecertificado.der -out nombrecertificado.pem
Convertir PEM a DER
Base65 ASCII a codificación binaria.
Para convertir PEM a DER, ejecute el siguiente comando:
openssl x509 -inform der -in nombrecertificado.der -out nombrecertificado.pem
Convertir PEM a PKCS#7
El archivo .p7b no incluye la clave privada.
Para convertir PEM a PKCS#7, ejecute el siguiente comando:
openssl crl2pkcs7 -nocrl -certfile nombrecertificado.pem -out nombrecertificado.p7b -certfile CACert.cer
Convertir PKCS#7 a PEM
Para convertir PKCS#7 a PEM, ejecute el siguiente comando:
openssl pkcs7 -print_certs -in nombrecertificado.p7b -out nombrecertificado.pem
Convertir PKCS#12 a PEM
El archivo PKCS#12 está protegido por contraseña.
Para convertir PKCS#12 a PEM, ejecute el siguiente comando:
openssl pkcs12 -in nombrecertificado.pfx -out nombrecertificado.pem
Convertir PKCS7 a PKCS12
Esto requiere dos pasos. Primero convertirá el archivo P7B a CER y después combinará CER y Clave privada en PFX.
- openssl pkcs7 -print_certs -in nombrecertificado.p7b -out nombrecertificado.cer
- openssl pkcs12 -export -in nombrecertificado.cer -inkey llaveprivada.key -out nombrecertificado.pfx -certfile cacert.cer
Eso es todo. Ahora puede convertir e instalar rápidamente en su servidor cualquier tipo de archivo SSL.
Conclusión
Comprender los formatos de los certificados SSL, las extensiones de archivo de los certificados y cómo convertirlos a la configuración deseada es una valiosa habilidad que le ayudará a instalar sin problemas certificados SSL en cualquier sistema.
Elegir el formato SSL adecuado garantizará un cifrado constante y conexiones seguras en servidores web, clientes de correo electrónico, dispositivos VPN y redes.
Preguntas frecuentes
La extensión de archivo utilizada para un archivo de copia de seguridad de certificado exportado varía en función del formato y el tipo de certificado. Los archivos de copia de seguridad de certificados más comunes son .p12 y .pfx (sistemas Windows), .cer y .crt, y .key para la copia de seguridad de la clave privada.
Copiar enlace
Apache utiliza el formato de certificado PEM con extensiones de archivo .cer .crt y .key.
Copiar enlace
Para crear un certificado SSL en formato PEM en Linux, puede utilizar el kit de herramientas OpenSSL y sus líneas de comandos. Una vez que hayas recibido el certificado SSL de la CA, puedes crear el archivo en formato PEM concatenando la clave privada y el certificado SSL en un único archivo mediante el siguiente comando:
cat private.key your_ssl_certificate.crt > your_ssl_certificate.pem
Copiar enlace
Abra su archivo SSL con cualquier editor de texto. Si ve la etiqueta “—–BEGIN CERTIFICATE—–” al principio del archivo del certificado y “—–END CERTIFICATE—–” al final del archivo, entonces el certificado está en formato PEM. Si el certificado está en formato DER, no contendrá estas etiquetas y en su lugar será un archivo binario.
Copiar enlace
El formato PKCS#12 o PFX contiene los certificados y la clave privada. Este formato almacena la clave privada y el certificado asociado en un único archivo cifrado.
Copiar enlace
Hemos escrito una guía detallada sobre cómo importar y exportar un archivo PFX en Microsoft IIS (Internet Information Services).
Copiar enlace
Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.
Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10