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

I've been building and managing websites for over 20 years, with a heavy focus on the technical side of the cybersecurity, VPN, and SaaS industries. I know how sites are built from the ground up, which means I know how to secure them. Here at SSL Dragon, I write about web architecture, encryption, and keeping your infrastructure safe.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.