Uso y comandos de OpenSSL

Uso y comandos de OpenSSL.

OpenSSL es una aplicación multiusos en la gestión de certificados, si quieres ser un sysadmin te sorprenderá las veces que tendrás que lidiar con ella.

En este artículo de hoy, veremos el uso de los comandos de OpenSSL más usados en un entorno de trabajo real.

Antes de comenzar, debes aprender las abreviaturas más utilizadas a la hora de tratar con los certificados.

  • SSL – Secure Socket Layer.
  • CSR – Solicitud de firma de certificado.
  • TLS – Seguridad de la capa de transporte.
  • PEM – Privacidad de los correos mejorada.
  • DER – Especificar reglas de codificación.
  • SHA – Algoritmo hash criptográfico.
  • PKCS – Estándares de criptografía de la clave pública.

Uso y comandos de OpenSSL 1

 

Uso y comandos de OpenSSL

El uso y comandos de OpenSSL lo dividimos por secciones en cinco apartados según su finalidad.

  • Solicitar certificados y generar claves.
  • Crear certificados autofirmados.
  • Visualizar y verificar los certificados.
  • Convertir certificados.
  • Comprobar certificados SSL.

En nuestros ejemplos utilizaremos el dominio «sololinux.es«, comenzamos…

 

Solicitar certificados y generar claves

Como norma general, al solicitar un nuevo certificado SSL, debemos generar una solicitud de firma de certificado o CSR con una nueva clave privada:

openssl req -sha256 -nodes -newkey rsa:2048 -keyout www.sololinux.es.key -out www.sololinux.es.csr

Generar una nueva solicitud de certificado usando una clave privada que ya tenemos:
openssl req -new -sha256 -key www.sololinux.es.key -out www.sololinux.es.csr

Generamos una solicitud de certificado desde de un certificado que ya existe:
openssl x509 -x509toreq -in www.sololinux.es.crt -out www.sololinux.es.csr -signkey www.sololinux.es.key

Generar una nueva clave privada RSA:
openssl genrsa -out www.sololinux.es.key 2048

Cifrar una clave privada con una frase de texto como contraseña:
openssl rsa -in www.sololinux.es.key -out www.sololinux.es.key -des3

Eliminar la frase de texto como contraseña de una clave privada:
openssl rsa -in www.sololinux.es.key -out www.sololinux.es.key

Generar una nueva clave privada ECC:
openssl ecparam -out sololinux.key -name prime256v1 -genkey

 

Crear certificados autofirmados

Si por motivos de pruebas, por que trabajas en local, o cualquier otro tema, no quieres ningún certificado ajeno que sea online, puedes generar tu mismo un certificado autofirmado con una validez de un año (puedes modificar la duración en «days 365»).

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

Uso y comandos de OpenSSL 2

 

Visualizar y verificar los certificados

Ver y verificar una solicitud de certificado (CSR):

openssl req -noout -text -verify -in www.sololinux.es.csr

Verificar y mostrar las keys:
openssl rsa -noout -text -check -in www.sololinux.es.key

Visualizar un certificado codificado PEM:
openssl x509 -noout -text -in www.sololinux.es.crt

Ver un certificado codificado en PKCS#7:
openssl pkcs7 -print_certs -in www.sololinux.es.p7b

Ver un certificado y sus claves codificadas en PKCS#12:
openssl pkcs12 -info -in www.sololinux.es.pfx

Verificar una conexión SSL y ver sus certificados:
openssl s_client -connect www.sololinux.es:443

ejemplo…

Uso y comandos de OpenSSL 3

 

Comprobar si un certificado, una solicitud, y su clave privada, tienen la misma clave pública:

openssl x509 -noout -modulus www.sololinux.es.crt | openssl sha256

openssl req -noout -modulus www.sololinux.es.csr | openssl sha256

openssl rsa -noout -modulus www.sololinux.es.key | openssl sha256

Verificar el certificado principal y sus intermedios (en servidores web):
openssl verify -purpose sslserver -CAfile certificatebundle.pem -verbose www.sololinux.es.crt

 

Convertir certificados

Convertir PKCS#12 con clave privada y certificado, a PEM:

openssl pkcs12 -nodes -in www.sololinux.es.pfx -out www.sololinux.es.crt

Convertir de PEM a PKCS#12:
openssl pkcs12 -export -in www.sololinux.es.crt -inkey www.sololinux.es.key -out www.sololinux.es.pfx

Convertir de PKCS#7 (.p7b .p7c) a PEM:
openssl pkcs7 -print_certs -in www.sololinux.es.p7b -out www.sololinux.es.crt

Convertir de PEM a PKCS#7:
openssl crl2pkcs7 -nocrl -certfile www.sololinux.es.crt -out www.sololinux.es.p7b

Convertir de DER (.crt .cer o .der) a PEM:
openssl x509 -inform der -in certificate.cer -out certificate.pem

Convertir de PEM a DER:
openssl x509 -outform der -in certificate.pem -out certificate.cer

 

Comprobar certificados SSL

openssl s_client -connect https://www.sololinux.es:443

Dependiendo de la configuración de seguridad de tu servidor, te imprimirá un error similar a…

getaddrinfo: Servname not supported for ai_socktype
connect:errno=0

Si es tu caso puedes ejecutar lo siguiente:

openssl s_client -connect sololinux.es:443

 

Estas ejecuciones que hemos visto, son las más comunes en OpenSSL, compártelas en tus redes sociales.

Uso y comandos de OpenSSL

 

Agregar comentario