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.
- 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.
- 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.
- 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.
- 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:
- La identidad de la organización coincide con los registros oficiales.
- La existencia física, jurídica y operativa de la entidad.
- La organización tiene derechos exclusivos para usar el dominio especificado en el certificado SSL.
- 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:
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. |
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:
- Abra la Consola de Administración de Microsoft (MMC).
- Ubicado en Raíz de consola, expanda Certificados (computadora local) árbol.
- 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).
- Haga clic con el botón derecho en el certificado que desea exportar y luego seleccione Todas las tareas> Exportar .
- 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.
- 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.
- 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-----
- 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.