Introducción
Este artículo explica cómo crear un certificado SSL autofirmado con la herramienta openssl.
¿Qué es un certificado SSL autofirmado?
Un certificado SSL autofirmado es un certificado firmado por la persona que lo creó en lugar de por una autoridad certificadora de confianza. Los certificados autofirmados pueden tener el mismo nivel de cifrado que el certificado SSL firmado por una CA de confianza.
Si se utiliza un certificado autofirmado, el navegador web mostrará una advertencia al visitante de que el certificado del sitio web no se puede verificar.
Los certificados autofirmados se utilizan principalmente para pruebas o uso interno. No utilice un certificado autofirmado en sistemas de producción expuestos a Internet.
Si desea crear un certificado autofirmado en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectarse al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Prerrequisitos
Se requiere el kit de herramientas de openssl para generar un certificado autofirmado.
Para comprobar si el paquete openssl está instalado en su sistema Linux, abra su terminal, escriba openssl version
y presione Enter. Si el paquete está instalado, el sistema imprimirá la versión de OpenSSL; de lo contrario, verá algo como el openssl command not found
.
Si el paquete openssl no está instalado en su sistema, puede instalarlo ejecutando el siguiente comando:
Ubuntu y Debian
sudo apt install openssl
Centos y Fedora
sudo yum install openssl
Cree un certificado SSL autofirmado
Para crear un nuevo SSL autofirmado, use el comando openssl req
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out example.crt \
-keyout example.key
Repasemos el comando y entendamos qué significa cada opción:
-newkey rsa:4096
: crea una nueva clave RSA de 4096 bits y una solicitud de certificado. El valor predeterminado es 2048 bits.-x509
: crea un certificado X.509.-sha256
: utiliza SHA (algoritmo hash seguro) de 265 bits.-days 3650
: el número de días para certificar el certificado. 3650 tiene 10 años. Puede utilizar cualquier número entero positivo.-nodes
: crea una clave sin una frase de contraseña.-out example.crt
: especifica el nombre de archivo para escribir el certificado recién creado. Se puede especificar cualquier nombre de archivo.-keyout example.key
: especifica el nombre del archivo en el que escribir la clave privada recién creada. Se puede especificar cualquier nombre de archivo.
Para obtener más información sobre las opciones del comando openssl req
, visite la página de documentación de OpenSSL req.
Una vez que presione Enter, el comando generará la clave privada y le hará una serie de preguntas que utilizará para generar el certificado.
Generating a RSA private key......................................................................++++........++++
writing new private key to 'example.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.
-----
Ingrese la información requerida y presione Enter.
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Alabama
Locality Name (eg, city) []:Montgomery
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Noviello
Organizational Unit Name (eg, section) []:Marketing
Common Name (eg server FQDN or YOUR name) []:noviello.it
Email Address []:[email protected]
El certificado y la clave privada se crearán en la ubicación especificada. Utilice el comando ls para verificar que se crearon los archivos:
ls
example.crt example.key
¡Eso es todo! Ha generado un nuevo certificado SSL autofirmado.
Siempre es una buena idea hacer una copia de seguridad del nuevo certificado y clave para almacenamiento externo.
Cree un certificado SSL autofirmado sin preguntar
Si desea generar un certificado SSL autofirmado sin que se le solicite ninguna pregunta, use la -subj
y especifique toda la información del asunto:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out example.crt \
-keyout example.key \
-subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"
Generating a RSA private key......................................................................++++........++++
writing new private key to 'example.key'
-----
Los campos, indicados en la -subj
, se enumeran a continuación:
C=
- Nombre del país. La abreviatura ISO de dos letras.ST=
- Nombre del estado o provincia.L=
- Nombre de la ubicación. El nombre de la ciudad en la que se encuentra.O=
- El nombre completo de su organización.OU=
- Unidad organizativa.CN=
- El nombre de dominio completo.
Conclusión
En esta guía, le mostramos cómo generar un certificado SSL autofirmado utilizando la herramienta openssl. Ahora que tiene el certificado, puede configurar la aplicación para usarlo.