Verificar certificado SSL
Los certificados no avisan de su falla hasta el momento en que el navegador pone una advertencia roja justo en su página de pago. Este endpoint inspecciona el certificado TLS de un dominio -emisor, ventana de validez, cadena y días restantes- para que el vencimiento sea un evento programado y no una emergencia de lunes por la mañana.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
El vencimiento que siempre agarra a alguien desprevenido
Las autoridades certificadoras pasaron de certificados de varios años a vigencias de 90 días o menos precisamente para forzar la automatización, pero muchos equipos todavía renuevan a mano una vez al año y se olvidan. El resultado es previsible: el certificado vence en silencio, los navegadores empiezan a mostrar advertencias intermedias y los tickets de soporte se acumulan antes de que alguien lo note. Un verificador automatizado convierte esa sorpresa en una fecha más en el calendario.
Qué inspecciona el chequeo en realidad
Hace POST a /web/ssl-check con un hostname (y un puerto opcional) y la tarea se conecta al endpoint TLS del servidor para leer el certificado presentado: nombre común del emisor, sujeto, fechas de validez, días hasta la expiración y la cadena completa hasta la raíz, lo que permite detectar un intermedio faltante -causa clásica de errores tipo 'en mi equipo funciona, en el móvil no'. La tarea corre de forma asíncrona y entrega su resultado por webhook o mediante un enlace firmado válido por 24 horas.
No solo vencimiento, también problemas de cadena
Una parte sorprendente de los incidentes de SSL no son certificados vencidos, sino cadenas incompletas: el certificado hoja es válido pero el intermedio no se sirve, así que algunos clientes confían en él y otros lo rechazan silenciosamente. Como este endpoint devuelve la cadena completa en lugar de una simple bandera válido/inválido, puede detectar ese tipo de falla antes de que clientes con dispositivos antiguos empiecen a ver errores que no puede reproducir en su propia laptop.
Dónde encaja en su infraestructura
Conéctelo a un cron nocturno sobre todo su portafolio de dominios, llámelo desde un pipeline de despliegue justo después de renovar un certificado para confirmar que el nuevo certificado realmente entró en vigencia, o intégrelo en un panel interno que liste cada propiedad de su empresa ordenada por días restantes hasta la expiración. Es una pieza básica, no un panel en sí mismo: usted define la forma que toma.
Precio simple, sin pánico de renovación sorpresa
Cada chequeo cuesta $0.002, lo bastante barato para correrlo a diario contra toda su lista de dominios sin pensarlo dos veces. Si un chequeo no logra completarse por un problema de nuestro lado, se reintenta automáticamente hasta tres veces y nunca se cobra; solo paga por chequeos que efectivamente se completan, sin importar si el certificado resulta sano o no.
Qué puede hacer con ella
Calendario de renovación de todo un portafolio
Un revendedor de hosting corre un chequeo nocturno sobre cada dominio de sus clientes y arma un calendario interno ordenado por días restantes.
Verificación posterior a una renovación
Después de que un proceso automatizado renueva un certificado, un pipeline de despliegue llama este endpoint para confirmar que el servidor en producción realmente está presentando el certificado nuevo.
Auditoría de cadenas incompletas
Un equipo de seguridad escanea sus subdominios para encontrar certificados hoja a los que les falta el intermedio, antes de que usuarios móviles empiecen a reportar conexiones rotas.
Monitoreo de proveedores y socios
Una empresa revisa los certificados de las APIs de terceros de las que depende, para que un certificado vencido de un socio no tumbe su propia integración sin aviso.
Preguntas frecuentes
¿Qué devuelve exactamente esta api para verificar certificado ssl?
El emisor, el sujeto, las fechas de validez, los días restantes hasta la expiración y la cadena completa del certificado hasta la raíz para el hostname que envíe.
¿Puede detectar una cadena de certificados incompleta?
Sí. Como se devuelve la cadena completa en lugar de una simple bandera de válido o inválido, puede detectar un certificado intermedio faltante, una causa común de errores de confianza que solo aparecen en ciertos dispositivos.
¿Hay alguna forma gratuita de probarlo?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Qué tan rápido obtengo los resultados?
El chequeo corre de forma asíncrona y normalmente se completa rápido; le avisamos por webhook firmado o puede obtener el resultado desde un enlace firmado válido por 24 horas.
¿Revisa puertos no estándar?
Sí, puede indicar el puerto junto con el hostname, útil para servicios que corren TLS en un puerto distinto al 443.
¿Se cobra si el certificado ya está vencido?
Sí, ese es un resultado exitoso e informativo y se factura con normalidad. Solo no se cobra cuando la tarea en sí no logra ejecutarse de nuestro lado, algo que se reintenta automáticamente hasta tres veces.
¿Puedo monitorear una lista completa de dominios?
Llama al endpoint una vez por cada hostname, pero nada le impide programarlo sobre toda una lista de dominios de forma periódica; a $0.002 por chequeo resulta accesible a esa escala.
¿Es lo mismo que el candado del navegador?
Va más allá: el navegador solo le dice si confía o no en el certificado; esta api devuelve el emisor, las fechas y los datos de la cadena para que pueda diagnosticar el porqué, no solo el sí o no.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/web/ssl-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/ssl-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"domain": "ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/ssl-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"domain": "ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/ssl-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"domain":"ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"domain":"ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/ssl-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"domain": "ejemplo.com"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.ssl_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
timeout_sec | 30 |
max_crawl_pages | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |