公开 CT 日志 · 分钟级 · 免费试查

证书透明度 CT

给一个域名,返回它签发过哪些证书、由谁签发、什么时候签的。

任何一张公开信任的 HTTPS 证书,签发时都必须写进公开的证书透明日志。也就是说,一个域名要上 HTTPS,就必须先在全世界面前留下记录——而且是在它真正上线之前。

免 Key 试查,每个 IP 每天 10 次,登录不额外增加。这个框直接调本页「接入」一节的那条接口。只给证书的起始时间,没有失效时间——见下面「签发时间」那一行。

为什么它往往是最早的信号

钓鱼站、高仿站、诈骗基建几乎都要 HTTPS(浏览器不给绿锁的站没人信)。所以证书签发这件事比域名解析早,比内容上线早,比任何人举报都早。

而 pDNS 告诉你这个域名落在哪台机器上。CT 回答「什么时候签的、由谁签的」,并且回答「这张证书上还签了哪些域名」——后者就是扩线:一张证书上的域名通常属于同一个人或同一套基建,这是公开日志里现成的关系,不需要任何猜测。

返回什么,以及它不是什么

本接口的响应不含中文。签发者、域名、状态以标准名称或稳定代码返回。

字段它表示什么
data[] 证书数组。空数组是答案,不是错误——"data": [] 表示确实没有匹配记录。无效输入会直接返回 400 并说明哪个参数不对,所以自动化流水线可以按状态码分流。
签发者与证书指纹 哪家 CA 签的、证书指纹是什么。fingerprint 是这张证书的唯一标识,便于你在自己的系统里对齐、去重或留存证据。
签发时间 证书的生效起始时间(not_before)。⚠️ 接口只提供起始时间,不提供失效时间——所以这里没有「有效期到哪天」,也不能据此判断证书此刻是否仍然有效。要推断失效时间需要按 CA 惯例自行推算,那会引入错误,所以本页不给这个结论。证书是否仍在用,请以实际握手或你自己的证书台账为准。
收录时间 这张证书被我们收录的时刻(ts)。用来判断「刚发生」还是「早就有了」。
has_more / next_offset 为契约一致性保留(与 IP 侧同名)。CT 按域名一次性返回全部匹配记录,不需要翻页:实测 has_more 恒为 false、next_offset 恒为 null。count 就是本次返回的条数,别拿它跟总数比较。
wildcard / risk_tld 这张证书是否为泛域名证书;域名后缀是否属于我们标注的高风险后缀。是随响应返回的只读标记,便于你按自己的规则二次筛选,不是判定结论。

时间是 UTC,不是北京时间

所有时间字段都是 UTC。按天聚合前记得自己加 8 小时。这个错在小窗口查询里会让你拿到一个空结果,然后以为功能坏了。

CT 不覆盖自签名证书和私有 PKI

只有写进公开 CT 日志的证书才在这里。查不到证书,不等于这个域名没有 HTTPS——内网自签、企业私有 CA 签发的证书都不会出现。请把这个区分讲给看报告的人。

它用在哪里

换证与异常签发

一个域名在短时间内反复换证,或者由一家它平时从不使用的 CA 签发,都值得看一眼。

是否已上 HTTPS

公开日志里没有任何记录,说明这个域名没有使用公开信任的证书——它可能仍是纯 HTTP,或者只在内部使用自签证书。

与解析史对照

CT 说明「证书什么时候签的」,被动 DNS 说明「这个域名当时指向哪里」。做事件溯源时,两条时间线要一起看。

同一张证书上的其它域名

在结果里点同证书域名,看这张证书还签给了谁。泛域名(*.example.com)与裸域常常共用一张证书,这是最稳的一条扩线——关系来自公开日志本身,不靠推断。

接入

免费试查,无需注册即可调用。响应字段、额度与错误格式见 API 接口文档;解析历史见 被动 DNS 解析。

GEThttps://ip99.com/v1/domain/certs/{domain}
# 直接调用,无需 Key(未登录额度)
curl https://ip99.com/v1/domain/certs/example.com

域名要小写、去尾点,非 ASCII 域名用 punycode。返回的是这个域名在当前窗口内的全部记录,不需要翻页;参数写错会得到 400。

GEThttps://ip99.com/v1/domain/fingerprint/{fingerprint}
# 同一张证书上还签了哪些域名(指纹取上面那条接口的 fingerprint 字段)
curl https://ip99.com/v1/domain/fingerprint/85ca6ab068e9bcce88b6c4aa3c47f7d17228134a457f870d3800e6223a0df07a

指纹是 64 位十六进制字符串、不带冒号。文档里常见的 3f:8a:1c:… 分段写法在这里会被直接拒掉(400)——格式错的请求不会发出去,也不占你的试查次数。返回的 data[] 每条是一个域名:domain、wildcard、first_seen、last_seen;条数超过一页时看 has_more,与证书那条接口同一个信封。

覆盖与更新

持续采集公开 CT 日志,新证书分钟级可查

从主要公共日志持续采集。量级参考:一天入库约 669 万张证书(2026-10-08 实测),签发者以 Let's Encrypt 为主,也包括 Sectigo、GoDaddy、Google Trust Services 等。新证书通常在签发后几分钟内可查。

入库量是证书数,不是域名数

这一点常被读错:日志里的一条记录是一张证书,不是一次域名注册。同一张证书可以签给多个域名,同一个域名也可以反复签——所以计数口径与「有多少个域名」不是一回事。

⚠️ 语料是滚动的近期窗口,不是 CT 的完整历史

我们采集的是近期写入日志的证书。所以一个大品牌的主域名经常查不到记录——不是它没有证书,而是它的证书有效期长、在这个窗口里没有重新签发过。

实测(2026-10-09):apple.com、microsoft.com、amazon.com、cloudflare.com、github.com、baidu.com 在主域名上都是空结果;而签发频繁的域名会有记录(google.com 有 4 条,覆盖 2026-09-10 至 2026-10-07)。

空结果的含义是「这个窗口内没有新签发」,不是「这个域名从来没有证书」。要查完整的历史签发记录,请用 CT 官方日志检索。请务必把这句话传给看报告的人——否则一个空结果会被读成「这个域名没有 HTTPS」。

子域枚举:目前不在试查范围内

按后缀批量枚举子域,暂不开放

这是我们主动没开放的能力,不是还没建好。按后缀批量拉子域,等于把一份完整的资产图谱交出去——对着手侦察的人来说,这是替他把活干完了。

请不要把它接进流水线。本页列出的其他能力不受影响。

注意这与「查一个域名自己的证书」是两件事:查单个域名的证书现在就能用,暂不开放的是「给我某个后缀下的全部子域」。

边界

内容是否公开原因
某个域名的证书签发史 公开 CT 日志本身就是公开数据,我们只是把它整理到能查询。
证书的签发者、时间与指纹 公开 这些内容本来就写在公开日志里,我们只是把它整理到能查询。
同一张证书上签给了哪些域名 公开 证书指纹与它覆盖的域名本来就写在公开日志里,一查即得;我们只是把它整理成一次查询。
按时间窗批量拉取新签发的证书 不在免费试查范围内 那是持续扫描而非单次查询,需要常驻配额与推送通道。请联系销售。
数据来源的具体日志名称与分片构成 绝不 来源构成是商业信息,任何客户面都不披露。

公开日志只能证明证书被签发过

它不能证明这张证书此刻仍在使用、也不能证明这个域名当前是恶意的。签发是一个时间点的事实;使用与意图要靠别的证据。请把 CT 当资产发现与线索来源,不要当作「域名当前状态」的判据。

联系销售

需要批量证书巡检、按时间窗持续扫描,或把这份数据接进自己的内网,告诉我们场景与大致量级即可。

填写联系表单 →