Los certificados SSL tienen periodos de validez limitados y deben renovarse regularmente para seguir siendo de confianza para los navegadores. Los certificados publicos emitidos despues del 15 de marzo de 2026 estan limitados a 200 dias, con la validez maxima reduciendose a 100 dias el 15 de marzo de 2027 y 47 dias el 15 de marzo de 2029. Saber exactamente cuando vence un certificado te ayuda a renovarlo a tiempo y evitar interrupciones del servicio.
Esta guia te muestra como verificar la fecha de vencimiento de un certificado con OpenSSL: para un servidor activo, para un archivo local, y como comprobar si un certificado esta proximo a vencer.
Respuesta rapida:
Para un sitio web activo, 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 vencimiento.
Metodo 1: Verificar un certificado en un servidor activo
Este metodo se conecta a un sitio web en funcionamiento y lee el certificado que sirve; no necesitas el archivo del certificado. Funciona para cualquier host accesible (un dominio remoto, o localhost con el puerto correcto 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
Reemplaza yourdomain.com con tu dominio real. Los comandos son identicos en macOS, ya que macOS es similar a Unix (su openssl integrado es LibreSSL, que admite estas opciones).
En Windows
- Abre el Simbolo del sistema o PowerShell (presiona Win + R, escribe cmd o powershell, y presiona 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.
Metodo 2: Verificar un certificado desde un archivo PEM
Un archivo PEM es un certificado codificado en base64 que comienza con —–BEGIN CERTIFICATE—– y termina con —–END CERTIFICATE—–. Usa este metodo cuando tengas el archivo del certificado en disco.
En Linux y macOS
Ve a la carpeta que contiene tu certificado y luego lee su fecha de vencimiento (reemplaza your_certificate.pem con 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
Asegurate de que OpenSSL este instalado y en tu PATH; de lo contrario, especifica la ruta completa al binario openssl.exe.
Ver ambas fechas, o comprobar si un certificado vence pronto
Para ver tanto la fecha de emision (notBefore) como la fecha de vencimiento (notAfter), usa -dates en lugar de -enddate:
openssl x509 -in your_certificate.pem -noout -dates
Para comprobar si un certificado vencera dentro de un periodo determinado, usa -checkend con un numero de segundos (aqui, 2592000 segundos = 30 dias):
openssl x509 -in your_certificate.pem -noout -checkend 2592000
Imprime Certificate will not expire (y sale con estado 0) o Certificate will expire (estado 1), lo que lo hace ideal para scripts de monitoreo y tareas cron.
Entendiendo el comando y la salida
Toma el comando para servidor activo y su salida como ejemplo:
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate
Salida:
notAfter=Sep 15 23:59:59 2026 GMT
Esto es lo que hace cada parte:
- echo | — envia entrada vacia para que el comando finalice sin esperar interaccion.
- openssl s_client — abre una conexion SSL/TLS al servidor.
- -servername example.com — establece la Indicacion del Nombre del Servidor (SNI), necesaria cuando un servidor aloja multiples certificados para diferentes dominios.
- -connect example.com:443 — el host y puerto al que conectarse (el puerto 443 es el puerto HTTPS estandar).
- 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 PEM y -enddate imprime solo la fecha de vencimiento.
- notAfter=… — la fecha y hora en que el certificado deja de ser valido.
Automatizalo: deja de rastrear fechas manualmente
En lugar de verificar las fechas de vencimiento manualmente, especialmente a medida que los periodos de validez se reducen hacia los 47 dias, puedes usar ACME como Certificate-as-a-Service (CaaS). Se encarga de la validacion del dominio, instala los certificados y los renueva automaticamente antes de que venzan, para que tu sitio siga siendo de confianza sin intervencion manual.
Conclusion
OpenSSL verifica la fecha de vencimiento de un certificado en una sola linea, desde un servidor activo con s_client, o desde un archivo con x509 -enddate, mientras que -dates y -checkend agregan la fecha de emision y una verificacion de vencimiento proximo. El campo notAfter te indica exactamente cuando renovar para evitar interrupciones del servicio. Cuando estes listo para renovar, explora nuestros certificados SSL.
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

