OpenSSL es una biblioteca de software o conjunto de herramientas de criptografía que hace que la comunicación a través de redes informáticas sea más segura. El programa OpenSSL es una herramienta de línea de comandos para usar las diversas funciones criptográficas de la biblioteca criptográfica de OpenSSL desde el shell. Generalmente se utiliza para los protocolos Transport Layer Security (TSL) o Secure Socket Layer (SSL). OpenSSL tiene una licencia de estilo apache, lo que significa que bajo algunas condiciones de licencia simples, uno puede usar el kit de herramientas para fines comerciales o no comerciales.
Puede verificar la versión instalada del comando OpenSSL usando el siguiente comando
$openssl version
Usos prácticos del comando OpenSSL
1. Para crear una clave privada RSA.
$openssl genrsa -out private.key 2048
Generará el archivo de clave RSA con el nombre private.key . Aquí, hemos usado 2048 para alta seguridad. Incluso se puede utilizar un tamaño de bit más bajo.
2. Cree una nueva clave privada y CSR.
$openssl req -nodes -newkey rsa:2048 -keyout custom.key -out custom.csr
Le pedirá detalles como el código del país, el nombre del estado y la localidad, el nombre de la organización, su nombre, dirección de correo electrónico, etc. Y después de ingresar todos los detalles, generará 2 archivos, uno con la extensión CSR y el otro con la extensión clave que representa CSR. y clave privada respectivamente.
3. Cree una nueva clave privada y un certificado autofirmado.
$openssl req -x509 -sha512 -nodes -days 730 -newkey rsa:2048 -keyout custom.key -out custom.pem
Solicitará detalles como el código de país, el nombre del estado y la localidad, el nombre de la organización, su nombre, dirección de correo electrónico, etc. Y después de ingresar todos los detalles, generará 2 archivos, uno con la extensión PEM y el otro con la extensión clave que representa Self Signed Certificado y clave privada respectivamente. En el ejemplo, hemos establecido la validez en 730 días, pero en caso de que no lo mencione, tomará el valor de un mes de forma predeterminada. Incluso puede cambiar el algoritmo de cifrado según su propia conveniencia. En este ejemplo, hemos utilizado el algoritmo SHA512.
4. Verificación de un archivo CSR
$openssl req -noout -text -in custom.csr
Mostrará los detalles que ingresó al momento de crear el archivo CSR que podría usarse para verificar que el archivo CSR correcto se envía al destinatario correcto.
5. Verificación de un archivo de clave privada.
$openssl rsa -in private.key -check
Verificará y verificará la clave RSA y, si está bien, mostrará el siguiente resultado.
6. Verificación de la autoridad del firmante del certificado
$openssl x509 -in custom.pem -noout -issuer -issuer_hash
Mostrará los detalles que ingresó al momento de crear el archivo pem que podría usarse para verificar que el archivo pem correcto se envía al destinatario correcto.
7. Comprobación del valor Hash de un certificado
$openssl x509 -noout -hash -in custom.pem
Mostrará el valor hash del archivo de certificado pem.
8. Conversión de formato PEM a DER
$openssl x509 -outform der -in custom.pem -out custom.der
Cambiará la extensión del certificado de .pem a .der y creará un nuevo archivo con extensión .der .
9. Comprobación de la fecha de caducidad del certificado del archivo pem
$openssl x509 -noout -in custom.pem -dates
Mostrará la fecha válida desde y hasta la fecha del certificado.