09 Oct Actualizar certificado SSL de Let’s Encrypt de manera automática.
No les ha pasado que algunas veces les da un error al actualizar certificado SSL de Let’s Encrypt de manera automática.
Es un erro parecido a este:
Could not bind TCP port 443 because it is already in use by another process on this system (such as a web server). Please stop the program in question and then try again. ------------------------------------------------------------------------------- Attempting to renew cert from /etc/letsencrypt/renewal/www.testsite.com.conf produced an unexpected error: object of type 'NoneType' has no len(). Skipping.
Esto ocurre mas que todo cuando los certificados creados son standalone
la solución es detener el servicio de nginx actualizar y luego iniciar el servicio nuevamente, comando:
certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"
Esto debemos hacerlo de manera automática, para ello usaremos el corntab
del sistema operativo.
Antes de utilizar el crontab
debemos crear unos directorios y archivos para ello.
Comando:
Nos hacemos root
o administradores
del equipo.
sudo su
Creamos un directorio de nombre (maintenace) en el directorio principal del usuario raíz (root
).
mkdir /root/maintenace
Creamos un archivo ejecutable en el directorio creado de nombre (updatessl.sh).
touch /root/maintenace/updatessl.sh
Editamos el archivo creado yo use vim pro puede usar el editor que ustedes deseen, por ejemplo nano.
vim /root/maintenace/updatessl.sh
Y agregamos lo siguiente.
#!/bin/bash #Updating letsencrypt certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"
Este archivo lo debemos hacer ejecutable con el comando.
chmod +x /root/maintenace/updatessl.sh
luego creamos un archivo de registros (logs).
touch /root/maintenace/cert-renew.log
Después de esto ya podemos editar el crontab
para que se haga la renovación de los certificados de manera automática.
abrimos crontab
en manera editor
crontab -e
Luego colocamos lo siguiente:
#renovacion de ssl 30 11 * * 1 root /root/maintenace/updatessl.sh >> /root/maintenace/cert-renew.log 2>&1 28 23 * * 1 root /root/maintenace/updatessl.sh >> /root/maintenace/cert-renew.log 2>&1
Ya con esto los certificados emitidos por Let’s Encrypt se renovaran de manera automática.
Happy Hacking!