Error de certificado SSL expirado: Causas y soluciones

Publicado el

Severidad: medium

El error de certificado SSL expirado indica que el certificado usado para establecer una conexión segura ha caducado. En este artículo, se analizan sus causas, diagnóstico y soluciones prácticas para resolverlo.

Qué significa el error

El error de certificado SSL expirado se produce cuando un certificado SSL, que cifra la comunicación entre un servidor web y un navegador, ha superado su fecha de validez. Esto provoca que los navegadores y otros clientes no puedan establecer conexiones seguras, mostrando advertencias o errores al intentar acceder a un sitio web.

Causas comunes

  • El certificado SSL ha alcanzado su fecha de expiración.
  • No se ha renovado el certificado a tiempo.
  • Problemas en la configuración del servidor, que no permiten la correcta lectura del certificado.
  • Certificados intermedios que no están correctamente instalados o han expirado.

Diagnóstico paso a paso

1. Verificar la fecha de expiración del certificado: Utiliza herramientas en línea o comandos para comprobar el estado del certificado.
   echo | openssl s_client -connect ejemplo.com:443 2>/dev/null | openssl x509 -noout -dates
   
2. Revisar el registro de errores del servidor: Consulta los logs de tu servidor web para identificar mensajes relacionados con los certificados SSL.
   tail -f /var/log/apache2/error.log  # Para Apache
   tail -f /var/log/nginx/error.log    # Para Nginx
   
3. Comprobar la cadena de certificados: Asegúrate de que todos los certificados intermedios están correctamente instalados y no han expirado.
   echo | openssl s_client -connect ejemplo.com:443 -showcerts
   

Soluciones concretas

  • Renovar el certificado SSL: Comunícate con tu proveedor de certificados y sigue su proceso para renovar el certificado. Una vez renovado, instálalo en tu servidor.
  • Configurar la renovación automática: Si utilizas Let's Encrypt, puedes automatizar la renovación con Certbot. Por ejemplo:
   certbot renew --dry-run
   

  • Actualizar la configuración del servidor: Asegúrate de que tu servidor está configurado correctamente para utilizar el nuevo certificado. Por ejemplo, en Nginx, la sección del servidor debería incluir:
   server {
       listen 443 ssl;
       ssl_certificate /etc/letsencrypt/live/ejemplo.com/fullchain.pem;
       ssl_certificate_key /etc/letsencrypt/live/ejemplo.com/privkey.pem;
   }
   

Consideraciones adicionales

  • Monitoreo de certificados: Implementa herramientas de monitoreo para recibir alertas cuando un certificado esté próximo a caducar, como Certify The Web o servicios de monitoreo de SSL.
  • Mantén un registro de las fechas de renovación: Llevar un calendario de expiración de certificados puede ayudar a evitar estos problemas en el futuro.
  • Pruebas de seguridad: Después de realizar cambios, prueba la configuración SSL de tu servidor usando herramientas como SSL Labs para asegurarte de que está correctamente configurado y seguro.