Linux en español
Tutoriales

Cómo crear un certificado SSL autofirmado con OpenSSL

certificado ssl
3 minutos de lectura

Crear un certificado SSL autofirmado no es difícil con OpenSSL. Este tipo de certificados SSL son perfectos para pruebas, entornos de desarrollo o cualquier otra cosa que requiera SSL, pero no necesariamente tiene que ser un certificado SSL de confianza .

Si usa esto en una configuración de Nginx o Apache, sus visitantes verán primero un gran mensaje de advertencia rojo » Su conexión no es privada «, antes de que puedan navegar. Esto no es para producción, solo para probar.

Para generar un certificado SSL autofirmado en un solo comando openssl ejecute lo siguiente en su terminal.

openssl req -x509 -sha256 -newkey rsa: 2048 -keyout certificate.key -out certificate.crt -days 1024 -nodes

Se realizaran varias preguntas, lo único que realmente importa es la pregunta de nombre común , que se utilizará como el nombre de host/nombre de DNS para el que está hecho el certificado SSL autofirmado. (Aunque: incluso con un Nombre común válido, sigue siendo un certificado SSL autofirmado y los navegadores aún no lo verán como no válido ).

Aquí está el resultado de ese comando.

Generating a 2048 bit RSA private key
.............................+++
..............+++
writing new private key to 'certificate.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BE
State or Province Name (full name) [Some-State]:Antwerp
Locality Name (eg, city) []:Antwerp
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Some Organization Ltd
Organizational Unit Name (eg, section) []:IT Department
Common Name (e.g. server FQDN or YOUR name) []: your.domain.tld
Email Address []:info@yourdomain.tld

Si no desea completar esas preguntas todas las veces, puede ejecutar un solo comando con el Nombre común como argumento de línea de comando. Generará el certificado SSL autofirmado directamente, sin molestarte por preguntas como Country Name, Organization, …

openssl req -x509 -sha256 -newkey rsa: 2048 -keyout certificate.key -out certificate.crt -days 1024 -nodes -subj '/CN=my.domain.tld'

Generando una clave privada RSA de 2048 bits
..... +++
........................... +++
escribiendo nueva clave privada para 'certificate.key'
-----

El resultado con ambos openssl comandos será de 2 archivos nuevos en su directorio de trabajo actual.

ls -alh
-rw-r - r-- 1 mattias 1.7K certificate.crt
-rw-r - r-- 1 mattias 1.6K certificado.key

Puede usar el certificate.key como la clave para sus configuraciones de SSL. No tiene una contraseña asociada, esa es la opcion -nodes (No cifrado DES) para ejecutar el comando openssl. Si desea una contraseña en su clave privada, elimine esa opción y vuelva a ejecutar el comando openssl.

cat certificate.key
----- BEGIN RSA PRIVATE KEY -----
MIIEowIBAAKCAQEA4Ez4L6n8KNDJvBNlu2kqIiTNXM7PiyfD8OPSg665OXf1qaaA
...
P2JYe3EN8sVlUG7bx1b0D78UQA + KMkwuWNNaQyerSNc8QMC63DT5
----- END RSA PRIVATE KEY -----

El certificate.crt contiene su archivo de certificado, la parte «pública» de su certificado.

cat certificate.crt
----- BEGIN CERTIFICATE -----
MIIE9zCCA9 + gAwIBAgIJAKR + VA + yc2CzMA0GCSqGSIb3DQEBBQUAMIGtMQswCQYD
...
C4RviEJyE4xdmwsjzfkc3nJTJfFyT / uo + Cx +
----- FIN CERTIFICADO -----

Ahora tienes un certificado SSL autofirmado y una clave privada que puedes usar para las configuraciones de su servidor.

 

Puntuación media 4.6 / 5. Recuento de votos: 5

¡Síguenos en redes sociales!

Entradas relaccionadas

Cómo actualizar MySQL 5.5 a 5.6/5.7 en linux

Diego García Cuesta

Comando su en Linux (Cambiar de Usuario)

Diego García Cuesta

Failed to start startup script for nginx service in plesk

Linux en Español

Cifrar tus archivos en la nube usando Cryptomator en Linux

Diego García Cuesta

Cómo permitir conexiones remotas en MySQL Server

Diego García Cuesta

Qué es tearing y cómo deshacerse de él en GNU/Linux

Linux en Español