Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Seguridad Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Crear, gestionar y convertir certificados SSL con OpenSSL

Uno de los comandos más populares en SSL para cree, convertir, gestionar los Certificados SSL es OpenSSL.

Habrá muchas situaciones en las que tendrá que tratar con OpenSSL de varias maneras, y aquí las he enumerado para usted como una práctica hoja de trucos.

En este artículo, hablaré de los comandos OpenSSL de uso frecuente para ayudarle en el mundo real

Algunas de las abreviaturas relacionadas con los certificados

  • SSL - Capa de sockets seguros
  • CSR - Solicitud de firma de certificado
  • TLS - Seguridad de la capa de transporte
  • PEM - Correo de privacidad mejorada
  • DER - Reglas de codificación distinguidas
  • SHA - Algoritmo hash seguro
  • PKCS - Normas de criptografía de clave pública

Nota: Un curso sobre el funcionamiento de SSL/TLS le será útil si no está familiarizado con los términos

Crear una nueva clave privada y una solicitud de firma de certificado

openssl req -out geekflare.csr -newkey rsa:2048 -nodes -keyout geekflare.key

El comando anterior generará una CSR y un archivo de clave RSA de 2048 bits. Si tiene intención de utilizar este certificado en Apache o Nginx, deberá enviar este archivo CSR a la autoridad emisora de certificados, y ellos le proporcionarán un certificado firmado principalmente en formato der o pem que deberá configurar en el servidor web Apache o Nginx

Crear un certificado autofirmado

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

El comando anterior generará un certificado autofirmado y un archivo de claves con RSA de 2048 bits. También he incluido sha256 ya que se considera más seguro en este momento

Consejo: por defecto, generará un certificado autofirmado válido sólo durante un mes, por lo que puede considerar definir el parámetro -days para ampliar la validez

Ej: para tener un autofirmado válido durante dos años

openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Verifique el archivo CSR

openssl req -noout -text -in geekflare.csr

La verificación es esencial para asegurarse de que está enviando la CSR a la autoridad emisora con los detalles requeridos

Crear clave privada RSA

openssl genrsa -out clave.privada 2048

Si sólo necesita generar una clave privada RSA, puede utilizar el comando anterior. He incluido 2048 para un cifrado más fuerte

Eliminar la frase de contraseña de la clave

openssl rsa -in certkey.key -out nopassphrase

.clave
Si está utilizando la frase de contraseña en el archivo de clave y utiliza Apache, entonces cada vez que inicie, tendrá que introducir la contraseña. Si usted está molesto con la introducción de una contraseña, entonces usted puede utilizar el anterior openssl rsa -in geekflare.key -check para eliminar la clave passphrase de una clave existente

Verificar la clave privada

openssl rsa -in

certkey.key -check

Si duda de su archivo de claves, puede utilizar el comando anterior para comprobarlo

Verificar archivo de certificado

openssl x509 -in certfile.pem -text -noout

Si desea validar los datos del certificado como CN, OU, etc., puede utilizar el comando anterior que le proporcionará los detalles del certificado

Verificar la Autoridad Firmante del Certificado

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

La autoridad emisora de certificados firma todos los certificados y en caso de que necesite comprobarlos

Comprobar el valor hash de un certificado

openssl x509 -noout -hash -in bestflare

.pem

Convertir DER a formato PEM

openssl

x509 -inform der -in sslcert.der -out sslcert.pem

Normalmente, la autoridad de certificación le dará los certificados SSL en formato .der, y si necesita utilizarlos en formato apache o .pem, entonces el comando anterior le ayudará

Convertir formato PEM a DER

openssl x509 -formato der -in sslcert.pem -out sslcert.der

En caso de que necesite cambiar el formato .pem a .der

Convertir certificado y clave privada a formato PKCS#12

openssl pkcs12 -export -out sslcert.pfx -inkey key.pem -in sslcert.pem

Si necesita utilizar un cert con la aplicación java o con cualquier otra que sólo acepte el formato PKCS#12, puede utilizar el comando anterior, que generará un único archivo pfx que contendrá el certificado y la clave.

Consejo: también puede incluir el certificado en cadena pasando -chain como se indica a continuación.

openssl pkcs12 -export -out sslcert.pfx -inkey key.pem -in sslcert.pem -chain cacert.pem

Crear CSR utilizando una clave privada existente

openssl req -out certificado.csr -key existente.key -nuevo

Si no desea crear una nueva clave privada en lugar de utilizar una existente, puede seguir con el comando anterior

Comprobar el contenido del cert en formato PKCS12

openssl pkcs12 -info -nodos -in cert.p12

PKCS12 es un formato binario, por lo que no podrá ver el contenido en el bloc de notas u otro editor. El comando anterior le ayudará a ver el contenido del archivo PKCS12

Convertir el formato PKCS12 en un certificado PEM

openssl pkcs12 -in cert.p12 -out cert.pem

Si desea utilizar el formato pkcs12 existente con Apache o sólo en formato pem, esto le será útil

Probar el certificado SSL de una URL concreta

openssl s_client -connect tuurl.com:443 -showcerts

Utilizo esto bastante a menudo para validar el certificado SSL de una URL particular desde el servidor. Es muy útil para validar el protocolo, el cifrado y los detalles del cert

Averiguar la versión de OpenSSL

versión openssl

Si usted es responsable de garantizar que OpenSSL es seguro, entonces probablemente una de las primeras cosas que tiene que hacer es verificar la versión

Comprobar la fecha de caducidad del certificado del archivo PEM

openssl x509 -noout -in certificado.pem -fechas

Útil si está planeando poner algún control para comprobar la validez. Le mostrará una fecha en sintaxis notBefore y notAfter. notAfter es la que tendrá que verificar para confirmar si un certificado ha caducado o sigue siendo válido

Ej

[root@Chandan opt]# openssl x509 -noout -in bestflare.pem -dates
notBefore=4 Jul 14:02:45 2015 GMT
notAfter=4 Hace 09:46:42 2015 GMT
[root@Chandan opt]#

Comprobar la fecha de caducidad del certificado de la URL SSL

openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout -enddate

Otra utilidad si está planeando monitorizar la fecha de caducidad de un certificado SSL de forma remota o de una URL en particular

Ej

[root@Chandan opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate

notAfter=8 dic 00:00:00 2015 GMT

Compruebe si se acepta SSL V2 o V3 en la URL

Para comprobar SSL V2

openssl s_client -connect secureurl.com:443 -ssl2

Para comprobar SSL V3

openssl

s_client -connect secureurl.com:443 -ssl3
Para comprobar TLS 1.0
openssl s_client -connectar secureurl.com:443

-tls1

Para comprobar TLS 1.1
openssl s_client -connectar secureurl.com:443

-tls1_1

Para comprobar TLS1.2
openssl s_client -connectar secureurl.com:443

-tls1_2

Si está asegurando un servidor web y necesita validar si SSL V2/V3 está activado o no, puede utilizar el comando anterior. Si está activado, obtendrá "CONECTADO", si no, "fallo de handshake

Verificar si el cifrado particular es aceptado en la URL

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

Si está trabajando en descubrimientos de seguridad y los resultados del pen test muestran que alguno de los cifrados débiles es aceptado, entonces para validarlo, puede utilizar el comando anterior

Por supuesto, tendrá que cambiar el cifrado y la URL contra la que desea realizar la prueba. Si el cifrado mencionado es aceptado, entonces obtendrá "CONECTADO" sino "fallo de handshake

Espero que los comandos anteriores le ayuden a saber más sobre OpenSSL para gestionar certificados SSL para su sitio web.

  • Chandan Kumar
    Autor
    Chandan Kumar es el fundador de Geekflare. Ha ayudado a millones de personas a destacar en el ámbito digital. Apasionado de la tecnología, su misión es explorar el mundo y ampliar el crecimiento de profesionales y empresas.
Gracias a nuestros patrocinadores
Más lecturas sobre seguridad
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder