GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Tutorial de OpenSSL:¿Cómo funcionan los certificados SSL, las claves privadas y las CSR?

Introducción

Desarrollado inicialmente por Netscape en 1994 para respaldar las capacidades de comercio electrónico de Internet, Secure Socket Layer (SSL) ha recorrido un largo camino. En medio de todos los ataques cibernéticos, los certificados SSL se han convertido en una necesidad habitual para cualquier sitio web activo.

Aunque Secure Socket Layer (SSL) y Transport Socket Layer (TLS) se han vuelto bastante omnipresentes, nos tomaremos un breve momento para explicar qué hacen y cómo lo hacen.

No te saltes el tutorial de OpenSSL sección.

¿Qué es un certificado SSL? ¿Cómo funciona SSL?

Un certificado de capa de conexión segura (SSL) es un protocolo de seguridad que protege los datos entre dos computadoras mediante el uso de encriptación.

Por lo general, los certificados SSL se utilizan en páginas web que transmiten y reciben datos confidenciales del usuario final, como el número de seguro social, los detalles de la tarjeta de crédito, la dirección o la contraseña. Los formularios de pago en línea son un buen ejemplo y, por lo general, encriptan la información delicada antes mencionada utilizando tecnología SSL de 128 o 256 bits.

Los certificados SSL aseguran la identidad de una computadora remota, más comúnmente un servidor, pero también confirman la identidad de su computadora a la computadora remota para establecer una conexión segura. Mantener la seguridad de Internet siempre ha sido una calle de doble sentido y, gracias al cifrado SSL, el servidor "se da la mano" con su computadora personal y ambas partes saben con quién se están comunicando.

¿Cuál es la diferencia entre TLS y SSL?

No hay ninguno . Transport Layer Security (TLS) es una versión actualizada de Secure Socket Layer (SSL). Aunque la mayoría de las conexiones seguras se realizan a través de protocolos TLS, la gente sigue llamándolo SSL. En este caso, es seguro decir que los viejos hábitos tardan en desaparecer.

¿Cómo puedo saber si una página web está protegida con SSL?

Como usuario de Internet, probablemente haya notado un candado y la barra de información del sitio se vuelve verde en su navegador web, así como el https protocolo de conexión.

Ese es su navegador que le informa que un sitio web está protegido mediante el cifrado SSL. Al hacer clic en la barra de información del sitio, se proporcionarán detalles adicionales sobre la conexión, así como información sobre el certificado SSL en sí.

¿Por qué necesito un certificado SSL?

Tomemos un ejemplo de la vida real.

Usted es propietario de un sitio de comercio electrónico que acaba de arrendar un servidor con phoenixNAP y lanzó un par de nuevas tiendas de comercio electrónico. Desea que sus visitantes se sientan seguros al visitar su tienda electrónica y, sobre todo, que no duden en iniciar sesión y realizar una compra.

Un certificado SSL y una conexión HTTPS inspiran confianza al consumidor. La industria del comercio electrónico está estrechamente ligada a la confianza del consumidor, e incluso podríamos decir que su negocio depende de que sus clientes se sientan seguros durante toda la experiencia de compra.

Además de las obvias razones de seguridad, un certificado SSL aumenta el SEO de su sitio y la clasificación de Google y genera confianza en el cliente, lo que en consecuencia mejora las tasas de conversión generales.

Si eso no es suficiente para que considere obtener un certificado SSL para su dominio, Google seguramente lo persuadirá. Es decir, a partir de julio de 2018, Google marca cada sitio web sin SSL como inseguro.

¿Dónde puedo obtener un certificado SSL?

Los certificados SSL son verificados y emitidos por una Autoridad de Certificación (CA). Usted aplica generando un CSR con un par de claves en su servidor que, idealmente, tendría el certificado SSL. El CSR contiene detalles cruciales de la organización que verifica la CA.

  1. Generar un CSR y un par de claves localmente en su servidor. El par de claves consta de una clave pública y una privada.
  2. Envíe la CSR y la clave pública a una CA que verificará su identidad legal y si posee y controla el dominio enviado en la solicitud. La autoridad de certificación verifica su organización y valida si la organización está registrada en la ubicación proporcionada en el CSR y si existe el dominio.
  3. Cuando se verifica, la organización recibe una copia de su certificado SSL, incluidos los detalles comerciales y la clave pública. La organización ahora puede instalar el certificado en su servidor.
  4. Cuando una CA emite el certificado, se vincula con el certificado "raíz de confianza" de una autoridad certificadora. Los certificados raíz están integrados en cada navegador y conectados a certificados emitidos individualmente para establecer una conexión HTTPS.

Tipos de certificados SSL

Asegúrese de elegir una CA que admita el tipo de certificado que necesita. Para su comodidad, a continuación se incluye una descripción de cada tipo de certificado:

Certificado SSL de dominio único

Este tipo está destinado a ser utilizado para un solo dominio y no ofrece soporte para subdominios. Por ejemplo, si el certificado se utilizará para www.phoenixnap.com, no admitirá ningún otro nombre de dominio.

Dominio Múltiple (Certificados SAN/UC)

Se utilizan varios certificados de dominio para numerosos dominios y subdominios. Además del FQDN, puede agregar soporte para otros (sub)dominios agregándolos al campo Nombre alternativo del sujeto. Por ejemplo, un certificado SAN puede incluir el dominio www.phoenixnap.com, su subdominio help.phoenixnap.com y otro dominio (por ejemplo, www.examplesite.com).

Certificado comodín

Los certificados comodín se pueden utilizar para un dominio, incluidos todos sus subdominios. La principal diferencia es que, en lugar de emitirse para un FQDN específico, los certificados comodín se utilizan para una amplia gama de subdominios. Por ejemplo, un certificado comodín emitido para *.phoenixnap.com podría usarse para una amplia gama de subdominios bajo el dominio principal www.phoenixnap.com, como se ve en la imagen a continuación.

Niveles de validación de certificados SSL

Las CA tienen niveles de validación de certificados diversificados en respuesta a una creciente demanda de certificados. Algunas organizaciones usan SSL solo para el cifrado, mientras que otras quieren mostrar a sus clientes que son una empresa de confianza. Diferentes necesidades han resultado en diferentes niveles de validación de certificados.

Validación de dominio (DV SSL)

Este tipo de certificado SSL es ideal para proteger blogs, aplicaciones de redes sociales y sitios web personales. La autoridad de certificación no garantiza la identidad de una organización y solo se verifica la propiedad del dominio.

Validación extendida (EV SSL)

La autoridad de certificación verifica la propiedad del dominio y realiza una investigación exhaustiva de la organización asociada con el certificado EV. Se siguen reglas estrictas al revisar una solicitud de validación extendida, y la CA debe verificar lo siguiente:

  1. La identidad de la organización coincide con los registros oficiales.
  2. La existencia física, jurídica y operativa de la entidad.
  3. La organización tiene derechos exclusivos para usar el dominio especificado en el certificado SSL.
  4. La organización ha autorizado debidamente la emisión del certificado EV SSL.

Crear certificado SSL

Cómo generar una solicitud de firma de certificado depende únicamente de la plataforma que esté utilizando y la herramienta particular que elija.

Estaremos generando un CSR usando OpenSSL .

OpenSSL es una herramienta ampliamente utilizada para trabajar con archivos CSR y certificados SSL y está disponible para descargar en el sitio web oficial de OpenSSL. Es una herramienta de implementación de código abierto para SSL/TLS y se usa en aproximadamente el 65 % de todos los servidores de Internet activos, lo que la convierte en el estándar no oficial de la industria.

Debian y Ubuntu

dpkg -l |grep openssl

Si el paquete OpenSSL está instalado, devolverá el siguiente resultado:

ii libgnutls-openssl27:amd64   2.12.23-12ubuntu2.4   amd64   GNU TLS library - OpenSSL wrapper

ii openssl   1.0.1f-1ubuntu2.16   amd64   Secure Sockets Layer toolkit - cryptographic utility

Si no ve ese resultado, ejecute el siguiente comando para instalar OpenSSL:

apt-get install openssl

Red Hat o CentOS

Red Hat (versión 7.0 y posterior) debe venir con una versión limitada preinstalada de OpenSSL. Solo ofrece soporte limitado para IDEA, RC5 y MDC2, por lo que es posible que desee instalar las funciones que faltan. Para leer más sobre esto, consulte la documentación de OpenSSL.

Para verificar si OpenSSL está instalado en un servidor yum (por ejemplo, Red Hat o CentOS), ejecute el siguiente comando:

rpm -qa | grep -i openssl

Este comando debería devolver el siguiente resultado:

openssl-1.0.1e-48.el6_8.1.x86_64
openssl-devel-1.0.1e-48.el6_8.1.x86_64
openssl-1.0.1e-48.el6_8.1.i686

Si su formato de salida es diferente, significa que OpenSSL no está instalado en su servidor. Ejecute el siguiente comando para instalar OpenSSL:

yum install openssl openssl-devel

¿Qué es una solicitud de firma de certificado (CSR)?

Una solicitud de firma de certificado (CSR) contiene la información más importante sobre su organización y dominio.

Por lo general, generaría un CSR y un par de claves localmente en el servidor donde se instalará el certificado SSL. Sin embargo, esa no es una regla estricta. Puede generar un CSR y un par de claves en un servidor e instalar el certificado en otro. Sin embargo, eso hace las cosas más complicadas. Cubriremos ese escenario también.

Secure Socket Layer (SSL) utiliza dos cadenas largas de números generados aleatoriamente, que se conocen como privado. y claves públicas . Una clave pública está disponible para el dominio público, ya que es parte de su certificado SSL y se da a conocer a su servidor.

La clave privada debe corresponder al CSR con el que se generó y, en última instancia, debe coincidir con el certificado creado a partir del CSR. Si falta la clave privada, podría significar que el certificado SSL no está instalado en el mismo servidor que generó la solicitud de firma de certificado.

Un CSR generalmente contiene la siguiente información:

Tenga en cuenta que hay que tener en cuenta ciertas convenciones de nomenclatura. Nombre de la organización y Nombre de la unidad organizativa no debe contener los siguientes caracteres:< > ~ ! @ # $ % ^ * / \ ( ) ?.,&

Cómo generar un CSR

Las solicitudes de firma de certificado (CSR) se generan con un par de claves:una clave pública y otra privada. Solo la clave pública se envía a una autoridad de certificación y se incluye en el certificado SSL, y funciona junto con su clave privada para cifrar la conexión. Cualquiera puede tener acceso a su clave pública y verifica que el certificado SSL sea auténtico.

Una clave privada es un bloque de texto codificado que, junto con el certificado, verifica la conexión segura entre dos máquinas. No debe ser de acceso público y no debe enviarse a la CA.

La integridad de un certificado se basa en el hecho de que solo usted conoce la clave privada. Si alguna vez se ve comprometido o se pierde, vuelva a ingresar su certificado con una nueva clave privada lo antes posible. La mayoría de las CA no le cobran por este servicio.

Opción 1:Generar un CSR

Lo primero que debe hacer sería generar un par de claves RSA de 2048 bits localmente. Este par contendrá su clave pública y privada. Puede usar la herramienta de clave Java o alguna otra herramienta, pero trabajaremos con OpenSSL.

Para generar una clave pública y privada con una solicitud de firma de certificado (CSR), ejecute el siguiente comando de OpenSSL:

openssl req -out certificatesigningrequest.csr -new -newkey rsa:2048 -nodes -keyout privatekey.key

Una vez que haya generado una CSR con un par de claves, es difícil ver qué información contiene, ya que no estará en un formato legible por humanos. Puede decodificar fácilmente la CSR en su servidor usando el siguiente comando OpenSSL:

openssl req -in server.csr -noout -text

Se recomienda descodificar el CSR y verificar que contiene la información correcta sobre su organización antes de enviarlo a una autoridad de certificación. Hay muchos decodificadores de CSR en la web que pueden ayudarlo a hacer lo mismo simplemente copiando y pegando el contenido de su archivo CSR.

Para su comodidad, hemos enumerado dos (2) herramientas decodificadoras de CSR en línea:

  • Comprador SSL
  • Cernicalo rojo

Opción 2:generar una CSR para una clave privada existente

Se recomienda emitir una nueva clave privada siempre que genere una CSR. Si, por algún motivo, necesita generar una solicitud de firma de certificado para una clave privada existente, use el siguiente comando de OpenSSL:

openssl req -out CSR.csr -key privateKey.key -new

Opción 3:generar una CSR para un certificado existente y una clave privada

openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

Un escenario poco probable en el que esto puede ser útil es si necesita renovar su certificado existente, pero ni usted ni su autoridad de certificación tienen el CSR original. Esto extraerá información sobre su dominio y organización del certificado SSL y la usará para crear una nueva CSR, lo que le ahorrará tiempo.

Opción 4:generar un certificado autofirmado

Un certificado autofirmado generalmente se usa para entornos de prueba y desarrollo y en una intranet. Generemos un certificado autofirmado usando el siguiente comando OpenSSL:

openssl req -newkey rsa:2048 -nodes -keyout domain.key -x509 -days 365 -out domain.crt

Los -days El parámetro se establece en 365, lo que significa que el certificado es válido durante los próximos 365 días. El -x509 El parámetro indica que será un certificado autofirmado. Se genera un CSR temporal y se usa solo para recopilar la información necesaria.

Las autoridades de certificación no verifican los certificados autofirmados. Por lo tanto, no son tan seguros como los certificados verificados. Si una CA no ha firmado el certificado, todos los principales navegadores mostrarán un mensaje de error de "certificado no confiable", como el que se ve en la imagen a continuación.

Si no desea proteger su clave privada con una contraseña, puede agregar los -nodes parámetro.

Opción 5:generar un certificado autofirmado a partir de una clave privada y una CSR existentes

Si ya tiene un CSR y privado y necesita generar un certificado autofirmado, use el siguiente comando:

openssl x509 \ -signkey domain.key \ -in domain.csr \ -req -days 365 -out domain.crt

Los -days el parámetro se establece en 365, lo que significa que el certificado es válido durante los próximos 365 días.

Cómo copiar el contenido de un archivo CSR

Abra el directorio en el que se encuentra su archivo CSR. Escribe el siguiente comando:

sudo cat domain.csr

Reemplazar ddominio con el parámetro FQDN de su CSR. Este comando mostrará el contenido del archivo CSR. Copie todo el contenido, comenzando desde "COMENZAR SOLICITUD DE CERTIFICADO" y terminando con "FINALIZAR SOLICITUD DE CERTIFICADO".

Renovación de certificados:no reutilice CSR antiguos

El hecho de que algunos servidores web permitan el uso de CSR antiguos para la renovación de certificados no significa que deba usarlos. Como medida de seguridad, genere siempre una nueva CSR y una clave privada cuando renueve un certificado. Aferrarse a la misma clave privada es un camino lleno de vulnerabilidades de seguridad.

Además, se recomienda renovar un certificado SSL antes de la fecha de vencimiento. De lo contrario, se requerirá la compra de un nuevo certificado.

Cómo verificar su CSR, certificado SSL y clave

Como ya hemos mencionado, sería conveniente verificar la información provista en el CSR antes de solicitar un certificado. Use los siguientes comandos para verificar su solicitud de firma de certificado, certificado SSL y clave:

RSE

openssl req -text -noout -verify -in server.csr

Este comando verificará la CSR y mostrará los datos proporcionados en la solicitud.

Clave

El siguiente comando verificará la clave y su validez:

openssl rsa -in server.key -check

Certificado SSL

Cuando necesite comprobar un certificado, su fecha de caducidad y quién lo firmó, utilice el siguiente comando de OpenSSL:

openssl x509 -in server.crt -text -noout

Clave privada

Una clave privada se codifica y crea en un formato PEM basado en Base-64 que no es legible por humanos. Puede abrirlo con cualquier editor de texto, pero todo lo que verá son unas cuantas docenas de líneas de lo que parecen ser símbolos aleatorios encerrados con encabezados de apertura y cierre. Vea a continuación un ejemplo de una clave privada:

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCVqGpH2S7F0CbEmQBgmbiDiOOGxhVwlG+yY/6OBQoPKcx4Jv2h
vLz7r54ngjaIqnqRNP7ljKjFLp5zhnAu9GsdwXbgLPtrmMSB+MVFHTJvKjQ+eY9p
dWA3NbQusM9uf8dArm+3VrZxNHQbVGXOIAPNHTO08cZHMSqIDQ6OvLma7wIDAQAB
AoGAbxKPzsNh826JV2A253svdnAibeSWBPgl7kBIrR8QWDCtkH9fvqpVmHa+6pO5
5bShQyQSCkxa9f2jnBorKK4+0K412TBM/SG6Zjw+DsZd6VuoZ7P027msTWQrMBxg
Hjgs7FSFtj76HQ0OZxFeZ8BkIYq0w+7VQYAPBWEPSqCRQAECQQDv09M4PyRVWSQM
S8Rmf/jBWmRnY1gPPEOZDOiSWJqIBZUBznvOPOOQSH6B+vee/q5edQA2OIaDgNmn
AurEtUaRAkEAn7/65w+Tewr89mOM0RKMVpFpwNfGYAj3kT1mFEYDq+iNWdcSE6xE
2H0w3YEbDsSayxc36efFnmr//4ljt4iJfwJAa1pOeicJhIracAaaa6dtGl/0AbOe
f3NibugwUxIGWkzlXmGnWbI3yyYoOta0cR9fvjhxV9QFomfTBcdwf40FgQJAH3MG
DBMO77w8DK2QfWBvbGN4NFTGYwWg52D1Bay68E759OPYVTMm4o/S3Oib0Q53gt/x
TAUq7IMYHtCHZwxkNQJBAORwE+6qVIv/ZSP2tHLYf8DGOhEBJtQcVjE7PfUjAbH5
lr++9qUfv0S13gXj5weio5dzgEXwWdX2YSL/asz5DhU=
-----END RSA PRIVATE KEY-----

En la mayoría de los casos, no necesitará importar el código de clave privada al sistema de archivos del servidor, ya que se creará en segundo plano mientras genera la CSR y luego se guardará en el servidor automáticamente. Durante la instalación del certificado SSL, el sistema obtiene la clave.

Verificar si un certificado y una clave privada coinciden

Para verificar, debe imprimir las sumas de verificación md5 y compararlas. Ejecute el siguiente comando:

openssl x509 -noout -modulus -in server.crt| openssl md5
openssl rsa -noout -modulus -in server.key| openssl md5

Resolución de problemas de SSL

El sistema no obtiene la clave privada automáticamente

Algunos sistemas no automatizan el procedimiento de obtención de una clave privada. Además, si necesita instalar un certificado existente en otro servidor, obviamente no puede esperar que obtenga la clave privada. La principal dificultad aquí es cómo encontrar la ubicación exacta de la llave. La forma en que puede recuperar la clave depende del sistema operativo del servidor en uso y si se utilizó una interfaz de línea de comandos o un panel de control de alojamiento web de un tipo particular para la generación de CSR.

Necesito ubicar mi clave privada instalada anteriormente

Si el caso es que su certificado ya ha sido instalado, siga los pasos a continuación que lo ayudarán a ubicar su clave privada en los sistemas operativos más populares.

Nginx

Debería poder encontrar la ubicación de la clave privada de su servidor en el archivo de host virtual de su dominio.

Navegue a la ubicación del servidor raíz del sitio (por lo general, es /var/www/directory ) y abra el archivo de configuración principal del sitio. Busque la ssl_certificate_key directiva que proporcionará la ruta del archivo de la clave privada.

Si no puede encontrar la ssl_certificate_key directiva, es posible que haya un archivo de configuración separado para los detalles de SSL. Busque algo descriptivo, como ssl.conf .

Apache

Al usar la biblioteca OpenSSL en Apache, la clave privada se guarda en /usr/local/ssl de manera predeterminada. Ejecute openssl version -a , un comando de OpenSSL que identifica qué versión de OpenSSL está ejecutando.

La salida mostrará el directorio que contiene la clave privada. Vea el resultado de ejemplo a continuación:

OpenSSL 1.0.2g  1 Dec 2016

built on: reproducible build, date unspecified

platform: debian-amd64

options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx)

compiler: cc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -

D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-

strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-

Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -

DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -

DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -

DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM

OPENSSLDIR: "/usr/lib/ssl"

La última línea OPENSSLDIR define la ruta del archivo. En el ejemplo proporcionado, es la ubicación predeterminada /usr/lib/ssl .

Si no generó la CSR con OpenSSL, debe buscar y acceder a su archivo de configuración principal de Apache, que es apache2.conf o httpd.conf . La directiva SSLCertficateKeyFile especificará la ruta del archivo de la clave privada.

Windows (IIS)

En los servidores que ejecutan los Servicios de información de Internet de Windows, el sistema operativo guarda la clave privada en una carpeta oculta, al igual que cualquier sistema operativo Windows normal almacena datos críticos del sistema.

Sin embargo, al exportar un .pfx archivo, puede obtener la clave privada y los certificados. Para hacerlo, siga los pasos a continuación:

  1. Abra la Consola de Administración de Microsoft (MMC).
  2. Ubicado en Raíz de consola, expanda Certificados (computadora local) árbol.
  3. Su certificado se encuentra en la carpeta Personal o carpeta de alojamiento web . Encuentra el certificado que buscas. Puede identificar cada certificado por su nombre común (dominio).
  4. Haga clic con el botón derecho en el certificado que desea exportar y luego seleccione Todas las tareas> Exportar .
  5. Siga el asistente guiado para exportar el .pfx archivo.

Tienes lo que necesitas si quieres guardar una copia de seguridad o instalar el certificado en otro servidor Windows.

Si necesita instalar el certificado en otro servidor que no ejecuta Windows (por ejemplo, Apache), debe convertir el archivo .pfx y separar los archivos .key y .crt/.cer. Puede hacerlo con OpenSSL.

¿Cómo mover un certificado SSL de un servidor de Windows a un servidor que no sea de Windows?

Para mover un certificado de un servidor de Windows a un servidor que no sea de Windows, debe extraer la clave privada de un archivo .pfx mediante OpenSSL.

  1. Después de haber descargado el archivo .pfx como se describe en la sección anterior, ejecute el siguiente comando OpenSSL para extraer la clave privada del archivo:
openssl pkcs12 -in mypfxfile.pfx -out privatekey.txt -nodes

Donde mypfxfile.pfx es la copia de seguridad de sus certificados de servidor de Windows.

  1. Este comando creará un privatekey.txt archivo de salida. Use un editor de texto para abrir el archivo y verá la clave privada en la parte superior de la lista en el formato estándar:
-----BEGIN RSA PRIVATE KEY-----
(Encrypted Text Block)
-----END RSA PRIVATE KEY-----
  1. Copie la clave privada, incluidas las etiquetas "BEGIN" y "END", y péguela en un nuevo archivo de texto. Guarde el archivo de texto como Your_Domain_Name.key.

No puedo encontrar mi clave privada

Si no puede encontrar la clave privada, busque pistas. Una cosa a tener en cuenta es si el servidor proporciona una conexión HTTPS que funcione. Si ese es el caso, entonces el servidor puede acceder a la clave privada y lo más probable es que esté en algún lugar del servidor.

El paso lógico sería buscar una .key expediente. En algunos casos, OpenSSL almacena el archivo .key en el mismo directorio desde donde OpenSSL -req se ejecutó el comando.

Si probó todo y aún no puede encontrar el archivo .key, existe una pequeña posibilidad de que la clave se haya perdido. No entre en pánico, lo más inteligente sería generar una nueva CSR y volver a emitir el certificado. Asegúrate de recordar la ubicación de la clave privada esta vez.

Comandos OpenSSL para convertir CSR

Si está trabajando con servidores Apache, las solicitudes de firma de certificados (CSR) y las claves se almacenan en formato PEM. Pero, ¿qué sucede si desea transferir CSR a un servidor Tomcat o Windows IIS? Bueno, tendría que convertir un archivo PEM estándar en un archivo PFX. Los siguientes comandos te ayudarán a hacer exactamente eso.

Convertir una CSR de PEM y una clave privada a PKCS12 (.pfx .p12)

Los archivos FKCS12 se utilizan para exportar/importar certificados en Windows IIS.

openssl pkcs12 \ -inkey domain.key \ -in domain.crt \ -export -out domain.pfx

Esto tomará la clave privada y la CSR y la convertirá en un solo archivo .pfx. Puede configurar una frase de contraseña de exportación, pero puede dejarla en blanco. Tenga en cuenta que al unir cadenas de caracteres de certificado de extremo a extremo en un solo archivo PEM, puede exportar una cadena de certificados a un formato de archivo .pfx.

Convertir un PKCS12 a PEM CSR

openssl pkcs12 \ -in domain.pfx \ -nodes -out domain.combined.crt

Si el archivo .pfx contiene una cadena de certificados, el archivo .crt PEM también tendrá varios elementos.

Convertir PEM a DER

DER es un formato binario que generalmente se usa con Java. Para convertir un archivo ASCII PEM a DER, use el siguiente comando OpenSSL:

openssl x509 \ -in domain.crt \ -outform der -out domain.der

Convertir DER a PEM

Si necesita convertir un archivo .der a PEM, use el siguiente comando de OpenSSL:

openssl x509 \ -inform der -in domain.der \ -out domain.crt

Cifrar una clave privada sin cifrar

El siguiente comando OpenSSL tomará una clave privada sin cifrar y la cifrará con la frase de contraseña que defina.

openssl rsa -des3 \ -in unencrypted.key \ -out encrypted.key

Defina la frase de contraseña para cifrar la clave privada.

Descifrar una clave privada cifrada

El siguiente comando de OpenSSL tomará una clave privada cifrada y la descifrará.

openssl rsa \ -in encrypted.key \ -out decrypted.key

Cuando se le solicite, ingrese la frase de contraseña para descifrar la clave privada.


Ubuntu
  1. Cómo proteger una cuenta habilitada para cPanel con un certificado SSL de Sectigo

  2. Cómo administrar los certificados Lets Encrypt SSL/TLS con certbot

  3. ¿Cómo verificar si el certificado SSL es SHA1 o SHA2 usando OpenSSL?

  4. ¿Cómo solicito un Certificado SSL privado a través del Panel de Control?

  5. Cómo instalar un certificado SSL en Plesk

Cómo generar y renovar certificados Let's Encrypt SSL en Plesk

Cómo generar certificados SSL autofirmados usando OpenSSL

Cómo instalar un certificado SSL gratuito para Apache en CentOS 8

¿Cómo instalar un certificado SSL en cPanel?

Cómo instalar un certificado SSL en cPanel

Cómo comprobar la fecha de caducidad de SSL en Plesk

    Parámetro Descripción Valor de ejemplo
    Nombre común o FQDN FQDN es el nombre de dominio completo de su sitio web. Debe ser lo mismo que escriben los usuarios en el navegador web. www.phoenixnap.com
    Nombre de la organización (por ejemplo, empresa) El nombre legal completo de su organización, incluidos sufijos como LLC, Corp, etc. PhoenixNAP, LLC
    Nombre de la unidad organizativa La división de su organización que se ocupa de este certificado. NOC
    Nombre de la localidad (por ejemplo, ciudad) La ciudad en la que se encuentra su organización. Fénix
    Estado/Región/Provincia (nombre completo) El estado o región en el que se encuentra su organización. Arizona
    Código de país (código de 2 letras) El país en el que se encuentra su organización. Siempre ingresado como un código ISO de dos letras. Estados Unidos
    Dirección de correo electrónico Dirección de correo electrónico utilizada para contactar al webmaster del sitio. [correo electrónico protegido]
    Clave pública Una clave creada automáticamente que se genera con la CSR y se incluye en el certificado. Un bloque de texto codificado similar a la clave privada. Vea un ejemplo de clave privada a continuación.