¿Cómo resolver el error de renovación de SSL de Let's Encrypt en un servidor Linux?
Guía para errores de renovación de Certbot, problemas de verificación de dominio y certificados SSL caducados.
Cuando el certificado SSL de un sitio web caduque, los visitantes verán una advertencia de no seguridad en su navegador. Esto no sólo reduce la confianza del usuario; WHMCS también crea serios problemas para los sistemas de pago, conexiones API, paneles de juego e inicios de sesión de clientes.
Los certificados Let's Encrypt son gratuitos pero deben renovarse periódicamente. Si Certbot no está configurado correctamente, la renovación fallará y el SSL puede caducar.
1. Comprobación de certificados disponibles
Primero verifique qué certificados están presentes en el servidor:
certbot certificates
Este comando muestra el nombre del certificado, los dominios, las rutas de los archivos y la fecha de vencimiento.
Si no hay ningún comando certbot, es posible que no se instale:
certbot --version
2. Realizar pruebas de actualización
Para probar el certificado antes de renovarlo:
certbot renew --dry-run
Este comando prueba el proceso de actualización. Si hay un error, le permite ver el problema antes del día de renovación real.
3. Errores de Certbot más comunes
La mayoría de los errores de renovación de Let's Encrypt están relacionados con la validación del dominio y el acceso al servidor web.
- Respuesta no válida: Let's Encrypt no puede acceder al archivo de verificación.
- Conexión rechazada: El puerto 80 o 443 puede estar cerrado.
- Tiempo de espera durante la conexión: Es posible que el dominio no esté dirigido al servidor o que el firewall lo esté bloqueando.
- No autorizado: Es posible que el archivo de verificación del dominio devuelva contenido incorrecto.
- Demasiados certificados: Es posible que se hayan realizado intentos de certificación con demasiada frecuencia.
4. Comprobación del enrutamiento IP del dominio
Para que la renovación del certificado funcione, el dominio debe dirigirse a la dirección IP correcta del servidor.
dig domainadi.com +short
Si dig no está instalado:
apt install dnsutils -y
En sistemas basados en CentOS:
yum install bind-utils -y
La IP devuelta por el dominio debe ser la misma que la dirección IP del servidor en el que se instalará SSL.
5. Comprobación de los puertos 80 y 443
Let's Encrypt a menudo quiere acceder al puerto 80 para la autenticación HTTP. Si el puerto 80 está cerrado, la autenticación puede fallar.
ss -tulpn | grep -E ':80|:443'
Si está utilizando un firewall, asegúrese de que los puertos 80 y 443 estén abiertos.
Para la UFW:
ufw allow 80/tcp ufw allow 443/tcp ufw reload
Para cortafuegos:
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
6. Pruebas de configuración de Nginx o Apache
Si hay un error en el archivo de configuración del servidor web, es posible que el servicio web no se vuelva a cargar después de la actualización de certbot.
Para Nginx:
nginx -t
Para Apache:
apachectl configtest
Si no hay errores, puede reinstalar los servicios:
systemctl reload nginx
o:
systemctl reload apache2
7. Renovación manual del certificado SSL
Si todas las comprobaciones son correctas, puede ejecutar la actualización manualmente:
certbot renew
Ejemplo de Nginx si solo necesita recertificar para un dominio específico:
certbot --nginx -d domainadi.com -d www.domainadi.com
Ejemplo de apache:
certbot --apache -d domainadi.com -d www.domainadi.com
8. Comprobación del programador de actualización automática
Certbot generalmente se actualiza automáticamente con systemd timer o cron.
systemctl list-timers | grep certbot
Para comprobar el estado del temporizador:
systemctl status certbot.timer
Si el cronómetro está apagado:
systemctl enable certbot.timer systemctl start certbot.timer
Errores comunes
- Intentando obtener SSL cuando la dirección IP del dominio es incorrecta
- Cierre el puerto 80 y espere a que funcione la autenticación HTTP.
- No comprobar la estructura de autenticación cuando el proxy de Cloudflare está activado
- Confundir el error de configuración de Nginx/Apache con el error de certbot
- No probar la renovación automática hasta que caduque SSL
Preguntas frecuentes
Si el SSL ha caducado, ¿se cerrará el sitio por completo?
Es posible que el sitio funcione técnicamente, pero el navegador muestra una advertencia de seguridad. Esto reduce seriamente la confianza del cliente.
¿Por qué falla la renovación de Certbot?
Por lo general, el dominio se dirige a la IP incorrecta, el puerto 80/443 está cerrado, la configuración del servidor web es incorrecta o no se puede acceder al archivo de verificación.
¿La renovación de SSL es un problema al usar Cloudflare?
El modo SSL o la configuración del proxy incorrectos pueden afectar el proceso de verificación. El método de verificación del dominio debe elegirse en consecuencia.
Recomendaciones de seguridad y operaciones
- Verifique las fechas de vencimiento de SSL con regularidad.
- Ejecute la prueba certbot renew --dry-run periódicamente.
- No cierre los puertos 80 y 443 innecesariamente.
- Después de cambiar la configuración del servidor web, ejecute nginx -t o apachectl configtest.
- No descuides el monitoreo SSL en dominios que utilizan paneles de pago y de clientes.
Este artículo está especialmente preparado para PvPServer.