Seguro que si te interesa un poco el mundillo de los sistemas o más bien la web conoces de sobra los famosos certificados gratuitos de Lets's Encrypt, bien vamos a explicar como generar un certificado de este tipo de manera manual usando la herramienta certbot en linux.
Estarás diciendo pero si eso lo hacen de manera automática los paneles de administración ya etc., sí pero en este caso vamos a explicar como se hace ya que los paneles hacen esto de manera muy similar y nunca es malo conocer este tipo de herramientas para ser un buen sysadmin.
En primer lugar vamos a instalar la herramienta para ello como siempre con apt
sudo apt install certbot
A continuación podemos comprobar que está bien instalado y su versión
sudo certbot --version
Bien ahora con el siguiente comando el cuál hay que enviar la información como parámetros sería el siguiente
sudo certbot certonly \
--manual \
--preferred-challenges=dns \
--email admin@example.com \
--server https://acme-v02.api.letsencrypt.org/directory \
--agree-tos \
-d *.example.com
Tan sencillo como en email poner un email, aconsejo poner uno real ya que si alguna vez se nos olvida renovarlo nos llegará un correo avisando que el certificado caducará en breve.
Y como último parámetro pues el dominio para el que queremos generar el certificado ya sea para el dominio principal o si queremos para un subdominio en particular pues en el lugar del * rellenamos con el subdominio.
Al ejecutarlo nos aparecerá algo como esto.
Aquí nos está indicando que tenemos que crear un registro TXT con el valor que nos indica para ello vamos donde tengamos la gestión de zonas de nuestro dominio ya sea el propio registrador o el panel propio ya depende cada uno como gestione los dns de su dominio y creamos el registro con la información facilitada.
Lo creamos con el nombre indicado en la terminal y el valor que las terminal nos generó, una vez hecho vamos a la terminal y podemos dar a Enter para continuar.
Si nos aparece lo de arriba todo fue correcto y nuestro certificado estará guardado como indica en el directorio /etc/letsencrypt/live
Los certificados tienen una duración de 90 días, como consejo ya que no es necesario yo pongo una tarea cron para que me lo genere sólo antes de que caduque.
00 5 * * * /usr/bin/certbot renew
Le pongo que ejecute esto cada día a las 5 de la madrugada, destacar que aunque se ejecute no lo va a generar cada día simplemente comprueba que no caducó y entonces no hace nada aunque cada uno puede ingeniárselas como quiera jugando con los días sabiendo el día que le caduca y que sólo se ejecute una vez pero como digo esto no consume nada porque comprueba que no está caducado y no hace nada.