He instalado let's encrypt con la configuración de Nginx con modo de validación de DNS. Como se indica en la documentación para la renovación automática, agregué la siguiente entrada:
15 3 * * * /usr/bin/certbot renew --quiet
Sin embargo, esto no funcionó, así que lo ejecuté en la línea de comando para ver qué sucedió. Recibo el siguiente error, entiendo que Nginx está utilizando el puerto 80/443 y tengo que detenerlo cuando lo renuevo manualmente. Me pregunto cómo lo configuro en modo RENOVACIÓN AUTOMÁTICA, es decir, agrego detener Nginx antes de esto. cronjob y reiniciar después? Pero es demasiado peligroso hacer esto en un cronjob, ya que si Nginx falla, se crean muchos tiempos de inactividad.
[centos]# /usr/bin/certbot renew --quiet
Attempting to renew cert (example.com) from /etc/letsencrypt/renewal/example.com.conf produced an
unexpected error:
Problem binding to port 80: Could not bind to IPv4 or IPv6.. Skipping.
All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/example.com/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)
¿Alguna idea?
Respuesta1
Ejecute certbot con el--nginx
o--webroot
parámetro, como está documentado, para que use su nginx en ejecución en lugar de iniciar su servidor web abierto.
certbot renew --quiet --nginx
o
certbot renew --quiet --webroot --webroot-path /var/www/html
No olvide utilizar también el --deploy-hook
parámetro para recargar su nginx después de una renovación exitosa.
Nota: debe instalar el complemento nginx si aún no lo ha instalado, con el siguiente comando.
yum install python-certbot-nginx