bg-tutorials

Cómo comprobar la fecha de caducidad del certificado SSL con OpenSSL

Los certificados SSL tienen periodos de validez limitados y deben renovarse regularmente para seguir siendo de confianza para los navegadores. Los certificados públicos emitidos después del 15 de marzo de 2026 estarán limitados a 200 días, y la validez máxima se reducirá a 100 días el 15 de marzo de 2027 y a 47 días el 15 de marzo de 2029. Saber exactamente cuándo caduca un certificado te ayuda a renovarlo a tiempo y a evitar interrupciones.

Esta guía te muestra cómo comprobar la caducidad de un certificado con OpenSSL: en un servidor en producción, en un archivo local, y cómo comprobar si un certificado está a punto de caducar.

Respuesta rápida:

Para un sitio web en producción, ejecuta:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate. 

Para un archivo de certificado, ejecuta:

openssl x509 -in your_certificate.pem -noout -enddate. 

El valor notAfter es la fecha de caducidad.

Método 1: Comprobar un certificado en un servidor en producción

Este método se conecta a un sitio web en funcionamiento y lee el certificado que este entrega; no necesitas el archivo del certificado. Funciona con cualquier host accesible (un dominio remoto, o localhost con el puerto adecuado para un servidor local).

En Linux y macOS

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -enddate

Sustituye yourdomain.com por tu dominio real. Los comandos son idénticos en macOS, ya que macOS es similar a Unix (su openssl integrado es LibreSSL, que admite estas opciones).

En Windows

  • Abre el Símbolo del sistema o PowerShell (pulsa Win + R, escribe cmd o powershell, y pulsa Enter).
  • Ejecuta:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>nul | openssl x509 -noout -enddate

En Windows, usa 2>nul en lugar de 2>/dev/null para descartar los mensajes de error.

Método 2: Comprobar un certificado a partir de un archivo PEM

Un archivo PEM es un certificado codificado en base64 que comienza con —–BEGIN CERTIFICATE—– y termina con —–END CERTIFICATE—–. Usa este método cuando tengas el archivo del certificado en el disco.

En Linux y macOS

Muévete a la carpeta que contiene tu certificado y luego lee su fecha de finalización (sustituye your_certificate.pem por el nombre de tu archivo):

cd /path/to/your/certificate/directory
openssl x509 -in your_certificate.pem -noout -enddate

En Windows

cd C:pathtoyourcertificatedirectory
openssl x509 -in your_certificate.pem -noout -enddate

Asegúrate de que OpenSSL esté instalado y disponible en tu PATH; de lo contrario, especifica la ruta completa al binario openssl.exe.

Ver ambas fechas o comprobar si un certificado caduca próximamente

Para ver tanto la fecha de emisión (notBefore) como la fecha de caducidad (notAfter), usa -dates en lugar de -enddate:

openssl x509 -in your_certificate.pem -noout -dates

Para comprobar si un certificado caducará dentro de un plazo determinado, usa -checkend con un número de segundos (aquí, 2592000 segundos = 30 días):

openssl x509 -in your_certificate.pem -noout -checkend 2592000

Imprime Certificate will not expire (y finaliza con estado 0) o Certificate will expire (estado 1), lo que lo hace ideal para scripts de monitorización y tareas cron.

Entendiendo el comando y su resultado

Toma como ejemplo el comando para un servidor en producción y su resultado:

echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate

Resultado:

notAfter=Sep 15 23:59:59 2026 GMT

Esto es lo que hace cada parte:

  • echo | — envía una entrada vacía para que el comando finalice sin esperar interacción.
  • openssl s_client — abre una conexión SSL/TLS con el servidor.
  • -servername example.com — establece la Server Name Indication (SNI), necesaria cuando un servidor alberga varios certificados para diferentes dominios.
  • -connect example.com:443 — el host y el puerto a los que conectarse (el puerto 443 es el puerto HTTPS estándar).
  • 2>/dev/null (Linux/macOS) o 2>nul (Windows) — descarta los mensajes de error para que solo se muestre la salida relevante.
  • | openssl x509 -noout -enddate — canaliza el certificado hacia la herramienta x509; -noout suprime el volcado en PEM y -enddate imprime únicamente la fecha de caducidad.
  • notAfter=… — la fecha y hora en que el certificado deja de ser válido.

Autómatizalo: deja de rastrear fechas manualmente

En lugar de comprobar las fechas de caducidad manualmente, especialmente a medida que los periodos de validez se reducen hasta los 47 días, puedes usar ACME como Certificate-as-a-Service (CaaS). Este se encarga de la validación del dominio, instala los certificados y los renueva automáticamente antes de que caduquen, para que tu sitio siga siendo de confianza sin intervención manual.

Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.

Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10

Una imagen detallada de un dragón en vuelo
Escrito por

Redactor de contenidos experimentado especializado en Certificados SSL. Transformar temas complejos de ciberseguridad en contenido claro y atractivo. Contribuir a mejorar la seguridad digital a través de narrativas impactantes.