Renovación automática del certificado SSL

¿Sabía que puede configurar rápidamente sus certificados Let’s Encrypt para renovarse automáticamente ejecutando un simple script de renovación automática de letencrypt?

En este tutorial para principiantes, aprenderá cómo configurar sus certificados SSL Let Let’s Encrypt para renovarse automáticamente antes de su fecha de vencimiento.

Antes de comenzar con este tutorial, ya debería haber configurado los certificados SSL Let Let’s Encrypt para un servidor Apache.

Si aún no ha configurado su SSL para su sitio web, aquí está el tutorial para las configuraciones de servidor.

1. Localice el paquete Certbot-Auto

Para aquellos de ustedes que configuraron SSL utilizando los tutoriales Click-to-deploy y Bitnami SSL, su paquete certbot-auto se descargó a su directorio de inicio. Puede ver el paquete simplemente ejecutando el comando ls.

Para aquellos de ustedes que descargaron el paquete certbot-auto a un directorio diferente, es importante encontrarlo. Si no puede encontrar el paquete certbot-auto, puede volver a descargar el paquete ejecutando el siguiente comando:

wget https://dl.eff.org/certbot-auto && chmod a+x certbot-auto

2. Mover paquete Certbot-Auto

Después de establecer la ubicación de su paquete Cerbot-Auto, el siguiente paso es mover el paquete certbot-auto al directorio / etc / letsencrypt /.

sudo mv certbot-auto /etc/letsencrypt/

Podemos comprobar que el paquete se ha movido al directorio indicado con el siguiente comando:

ls /etc/letsencrypt/

3. Editar archivo Crontab

Ahora que ha movido su paquete certbot-Auto al directorio / etc / letsencrypt /, el siguiente paso es abrir su archivo crontab.

Para abrir su archivo crontab, ejecute el siguiente comando:

sudo crontab -e

En el caso de que no hayamos ejecutado antes nuestro crontab veremos que nos indica una salida como la siguiente. En el ejemplo se selecciona el editor «nano» que es la primera opción simplemente indicando el 1 y la tecla «Enter».

no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny

Choose 1-3 [1]: 1

4. Configurar el script para la renovación automática

Ahora que ha abierto su archivo crontab, el siguiente paso es agregar una secuencia de comandos en la parte inferior del archivo crontab que se ejecutará una vez por semana y renovará automáticamente los certificados SSL si están a punto de caducar. Para los usuarios de Apache estándar, agregue el siguiente comando al final del archivo:

45 2 * * 6 cd /etc/letsencrypt/ && ./certbot-auto renew && /etc/init.d/apache2 restart

5. Pruebas básicas de renovación automática

Para probar el script de renovación automática en busca de errores, puede realizar rápidamente una ‘ejecución en seco’, un proceso en el que se ejecutará el script de renovación automática sin renovar los certificados. Para realizar una ‘ejecución en seco’, ejecute los siguientes dos comandos:

sudo -i
cd /etc/letsencrypt/ && ./certbot-auto renew --dry-run && /etc/init.d/apache2 restart

Tras la ejecución del comando de renovación, si todo va bien veremos al final la siguiente salida:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/mi-dominio.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator apache, Installer apache
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for mi-dominio.com
Waiting for verification...
Cleaning up challenges

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of apache server; fullchain is
/etc/letsencrypt/live/mi-dominio.com/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/mi-dominio.com/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
[ ok ] Restarting apache2 (via systemctl): apache2.service.

¡Felicidades! Ha configurado correctamente sus certificados Let’s Encrypt SSL para renovarlos automáticamente antes de su vencimiento.

Si desea probar y ejecutar el proceso de renovación, continúe con el siguiente paso (opcional). El script renovará los certificados un mes antes de la fecha de vencimiento.