Búsqueda en registros de certificados
Cada vez que se emite un certificado para uno de tus nombres de host, queda anotado en un libro público que cualquiera puede leer. Esta búsqueda lee ese libro para un dominio, enumera los nombres que expone y prueba en el DNS los más recientes.
Un libro que cualquiera puede leer
Un certificado TLS lo emite una autoridad de certificación (CA), y un navegador confía en cualquier certificado firmado por cualquiera de las cien autoridades más o menos que figuran en su lista. Durante años, eso significó que una sola autoridad descuidada o comprometida podía emitir un certificado válido para el dominio de tu banco sin que nadie lo notara.
Certificate Transparency (CT) cierra esa brecha. Las autoridades tienen que enviar cada certificado a registros públicos en los que solo se puede añadir, y desde abril de 2018 Chrome rechaza los certificados que no llevan la prueba de haber sido registrados. Safari aplica la misma regla. Los registros los operan empresas como Google, Cloudflare, DigiCert, Sectigo y Let’s Encrypt, y cualquiera puede consultarlos.
Para ti esto tiene dos caras. Puedes ver todos los certificados emitidos alguna vez para tu dominio, incluidos los que nunca pediste. Y los demás también, junto con cada nombre de host escrito en esos certificados.
Qué hace la búsqueda con el registro
Consultamos crt.sh, un índice público de los registros CT, para el dominio registrado y todo lo que cuelga de él. Los resultados se guardan una hora. Luego los procesamos así:
- Los certificados se cuentan una sola vez. Cada emisión aparece dos veces en los registros, como precertificado y como certificado final. Las entradas con el mismo emisor y el mismo número de serie se fusionan.
- Se recogen los subdominios a partir de los nombres de cada certificado y se ordenan por la fecha de su certificado más reciente. Los comodines como
*.example.comse enumeran aparte. - Los 40 nombres más recientes se resuelven en el DNS para ver si todavía llevan a alguna parte.
- Se cuentan los emisores, en total y en los últimos 90 días, y se comparan con tu registro CAA si publicas uno.
Cuando un dominio tiene un historial muy largo, crt.sh devuelve solo una parte o agota el tiempo de espera. La página te avisa cuando ocurre y recurre a los certificados que siguen vigentes.
CNAME huérfanos y toma de control de subdominios
Imagina que status.example.com fue en su día un CNAME hacia example.herokuapp.com. Alguien borró la aplicación y se olvidó del registro DNS. El alias ahora apunta a un nombre que cualquiera puede reclamar, y quien cree una aplicación con ese nombre en la misma plataforma recibe el tráfico de tu subdominio. Desde ahí puede servir una página de acceso falsa bajo tu dominio y conseguir un certificado válido para ella.
La columna de estado muestra lo que dice hoy el DNS.
- Resuelve
- El nombre tiene una dirección. No hay nada que hacer.
- Destino desaparecido (rojo)
- Un CNAME hacia una plataforma que se sabe que deja reutilizar nombres abandonados, como GitHub Pages, Heroku, Azure, Amazon S3, Netlify o Shopify, y el destino devuelve
NXDOMAIN. Trátalo como urgente. - Destino desaparecido (ámbar)
- La misma situación en un servicio que no reconocemos.
- Desaparecido / Sin dirección
- El propio subdominio ya no existe. Es inofensivo, aunque su nombre se queda en los registros.
La reparación requiere un solo paso. Borra el registro CNAME, o vuelve a crear el recurso en la plataforma si todavía necesitas el subdominio. Y de ahora en adelante, haz que “eliminar el registro DNS” forme parte del cierre de cualquier servicio alojado.
Cómo leer la tabla de emisores
La mayoría de los dominios muestran una o dos autoridades. Let’s Encrypt y Google Trust Services aparecen mucho porque los hostings y las CDN les piden certificados de forma automática. Un emisor se marca como Inusual en dos casos. O bien emitió en los últimos 90 días y no está en tu registro CAA, o bien no tienes registro CAA y representa como máximo dos certificados en un dominio que tiene diez o más.
Inusual no quiere decir hostil. Activar una CDN, un constructor de sitios o una herramienta nueva de páginas de aterrizaje suele traer una autoridad nueva. Pregunta a quien gestione esos servicios. Si nadie sabe explicar el certificado, busca su número de serie con el enlace a crt.sh de la última tabla y pide a esa autoridad que lo revoque.
Para restringir quién puede emitir de ahora en adelante, publica registros CAA que nombren solo las autoridades que usas:
example.com. CAA 0 issue "letsencrypt.org" example.com. CAA 0 issue "pki.goog"
Solo se prueban 40 nombres, y solo para detectar un destino de CNAME inexistente. Algunas plataformas se pueden tomar aunque el destino siga respondiendo, y los nombres de host cubiertos por un comodín nunca aparecen en los registros. Un resultado limpio aquí no es una auditoría completa de tu zona DNS.
Preguntas frecuentes
¿Puedo quitar un subdominio de los registros de Certificate Transparency?
No. Los registros solo admiten adiciones, y están hechos para que un borrado se note. Da por hecho que cualquier nombre de host que pongas en un certificado público es público para siempre.
¿Cómo encuentro todos los subdominios de un dominio?
Los registros CT son la fuente pública más completa, porque casi todos los nombres de host con HTTPS han tenido un certificado en algún momento. Se les escapan los nombres que solo usaron un certificado comodín y los que nunca sirvieron HTTPS.
¿Por qué hay cientos de certificados para mi dominio?
Los certificados automáticos duran 90 días o menos y se renuevan más o menos cada 60 días, por cada nombre de host, y una CDN delante del sitio emite además los suyos. Un sitio con cinco nombres de host puede generar más de treinta certificados al año.
¿Cómo evito que los nombres de host internos aparezcan en los registros?
Usa un certificado comodín, que registra solo *.example.com, o emite los certificados internos desde una autoridad privada en la que confíen tus propios dispositivos. En los certificados públicos, evita nombres descriptivos como vpn-admin o el nombre de un producto que aún no has lanzado.
¿Un certificado en los registros significa que el sitio está activo?
No. Significa que alguien pudo demostrar el control de ese nombre el día de la emisión. La comprobación de DNS de la tabla de subdominios te dice si el nombre todavía lleva a alguna parte.