Cómo generar certificados SSL en Linux usando OpenSSL

El proceso de generación de certificados SSL/TLS es una tarea común para muchos administradores de sistemas Linux. Afortunadamente, incluso si no eres administrador, es fácil hacerlo usando OpenSSL, una herramienta de código abierto que se instala por defecto en muchas distribuciones de Linux. Aquí explicamos qué es OpenSSL, cómo instalarlo y, lo más importante, cómo usarlo para generar certificados SSL y TLS en su sistema.

¿Qué es OpenSSL?

OpenSSL es una biblioteca desarrollada por OpenSSL Project para proporcionar implementaciones SSL y TLS de código abierto para el cifrado del tráfico de red. Está disponible para una variedad de distribuciones basadas en Unix y se puede usar para generar certificados, claves privadas RSA y realizar tareas generales relacionadas con la criptografía.

Limitación del certificado SSL autofirmado

Cuando utiliza OpenSSL para generar un certificado SSL, se considera «autofirmado». Significa que el certificado SSL está firmado con su propia clave privada y no de una Autoridad de Certificación (CA).

Como tal, no se puede «confiar» en el certificado SSL y no debe usarse para ningún sitio público. Si se usa, es probable que los usuarios vean advertencias de sus navegadores sobre el certificado.

Un certificado autofirmado es útil para el desarrollo local o cualquier aplicación que se ejecute en segundo plano y que no esté conectada a Internet.

Alternativamente, puede usar LetsEncrypt u obtener un certificado verificado por una autoridad confiable, como Comodo CA.

Instalación

La mayoría de las distribuciones de Linux ya tienen una versión de OpenSSL integrada de forma predeterminada. Si no, puedes instalarlo fácilmente.

Puede instalarlo en Ubuntu y Debian usando el apt dominio:

En CentOS (o su alternativa), puede instalarlo usando el yum dominio:

También puede descargarlo fácilmente desde su sitio web como un archivo “.tar.gz”.

Uso básico

Ahora que tiene instalado OpenSSL, podemos echar un vistazo a algunas de las funciones básicas que proporciona el programa.

Puede comenzar viendo la versión y otra información relevante sobre su instalación de OpenSSL:

Comprobación de la versión de Openssl

Puede consultar el manual proporcionado:

Comando de ayuda Openssl 1

Generación de un certificado mediante un archivo de configuración

La generación de un certificado usando OpenSSL es posible de muchas maneras. Una de ellas es mediante el uso de un archivo de configuración que especificará detalles sobre la organización.

Para comenzar, puede crear un archivo de configuración llamado «config.conf» y editarlo usando Nano:

Aquí hay un ejemplo del contenido del archivo de configuración:

[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
x509_extensions= v3_ca
distinguished_name = dn
 
[dn]
C = US
ST = California
L = Los Angeles
O = Org
OU = Sales
emailAddress = test@test.com
CN = www.org.test.com
 
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true
 
[req_ext]
subjectAltName = @alt_names
 
[alt_names]
DNS.1 = test.example.com

Simplemente puede copiar y pegar esto en el archivo y realizar los cambios necesarios para reflejar la información de su organización.

Editar archivo de configuración nano

A continuación, debe generar una clave privada RSA, que luego se utilizará para generar un certificado raíz:

openssl genrsa -out example.key 2048

los -out bandera se utiliza en este caso para especificar el nombre de la clave que se generará. También se especifica un tamaño de clave de 2048 bits, que es el valor predeterminado para las claves RSA.

Openssl generar clave privada Rsa

También deberá generar una solicitud de firma de certificado (CSR):

openssl req -new -key example.key -out example.csr -config example.conf

En este caso, el -key bandera se utiliza para especificar la clave RSA, el -out marca especifica el nombre del archivo CSR y el -config bandera se utiliza para especificar el nombre del archivo de configuración.

Después de esto, puede generar un certificado raíz, que se utiliza para generar nuestro certificado final:

openssl req -x509 -sha256 -nodes -new -key example.key -out example.crt -config example.conf

En el proceso de generar este certificado raíz, el -sha256 se utiliza para especificar SHA256 como resumen del mensaje.

Ahora, en cuanto al paso final, finalmente podemos escribir lo siguiente para generar nuestro certificado:

openssl x509 -sha256 -CAcreateserial -req -days 30 -in example.csr -extfile example.conf -CA example.crt -CAkey example.key -out final.crt

los -CA bandera especifica el certificado raíz, el -CAkey bandera especifica la clave privada y -extfile especifica el nombre del archivo de configuración. El archivo “final.crt” será el certificado SSL que desee.

Openssl generar certificado autofirmado

Generación de un certificado sin un archivo de configuración

Alternativamente, también puede generar un certificado usando OpenSSL sin un archivo de configuración.

Puede comenzar generando una clave privada RSA:

openssl genrsa -out example.key 2048

A continuación, tendrás que generar un CSR:

openssl req -new -key example.key -out example.csr

Al generar un CSR, se le pedirá que responda preguntas sobre su organización.

Solicitud de firma de certificado Openssl

Finalmente, podemos generar el propio certificado:

openssl x509 -req -days 30 -in example.csr -signkey example.key -out example.crt

Certificado de generación de Openssl sin archivo de configuración

Verificación de Claves y Certificados

Las claves y los certificados se comprueban y verifican fácilmente mediante OpenSSL, con el -check bandera:

openssl rsa -check -in example.key

Openssl Verificar clave privada Rsa

Puede consultar las solicitudes de firma de certificados:

openssl req -text -noout -in example.csr

y certificados también:

openssl x509 -text -noout -in example.crt

Certificado de comprobación de Openssl

Preguntas frecuentes

1. ¿Todavía tengo que preocuparme por Heartbleed?

Heartbleed (CVE-2014-0160) es una vulnerabilidad antigua encontrada en OpenSSL en 2014. Los servidores TLS y los clientes que ejecutan OpenSSL se vieron afectados. Se lanzó rápidamente un parche unos días después de su descubrimiento, y esta vulnerabilidad no es algo de lo que preocuparse en 2022, siempre que esté ejecutando una versión moderna y actualizada de OpenSSL.

Si está utilizando OpenSSL en sistemas basados ​​en Debian y Ubuntu, siempre puede actualizarlo ejecutando los siguientes comandos:

sudo apt update && sudo apt upgrade openssl

2. ¿Cuánto tiempo duran los certificados SSL antes de que caduquen?

Esto depende del valor que elija al generar el certificado. Esto se puede especificar mediante el -days indicador al generar un certificado.

Credito de imagen: Sls escrito en bloque de cubo de madera por 123RF

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *