Skip to content

快速开始

挑你顺手的形态,三分钟跑起来。

📦Go SDK
嵌入你自己的 Go 程序
⌨️CLI
命令行、脚本、CI
🔌MCP Server
任何 MCP 兼容客户端
🤖AI Skills
Claude Code 零安装

四种形态背后是同一个 SDK——能力完全等价,只是面向不同使用者:

flowchart TB U["👤 使用者"] U --> F1["🤖 AI Skills
给 AI 看的说明书"] U --> F2["🔌 MCP Server
20 个结构化工具"] U --> F3["⌨️ CLI
26 条人类命令"] U --> F4["📦 Go SDK
20 个程序方法"] F1 --> SDK["pkg/crtsh
唯一事实来源"] F2 --> SDK F3 --> SDK F4 --> SDK SDK --> CRT["🌐 crt.sh
证书透明度搜索引擎"]

形态一:Go SDK

bash
go get github.com/cyberspacesec/crt.sh-skills/pkg/crtsh
go
package main

import (
    "context"
    "fmt"
    crtsh "github.com/cyberspacesec/crt.sh-skills/pkg/crtsh"
)

func main() {
    client := crtsh.NewClient(crtsh.WithTimeout(30_000_000_000)) // 30s
    certs, _, err := client.SearchCertificates(context.Background(), crtsh.QueryParams{
        Q:              "example.com",
        ExcludeExpired: true,
        Deduplicate:    true,
    })
    if err != nil {
        panic(err)
    }
    for _, c := range certs {
        fmt.Printf("%d  %s  %s\n", c.ID, c.NotBefore, c.NameValue)
    }
}

形态二:CLI

下载对应平台的二进制(见 Release 发布流程),或直接:

bash
go run github.com/cyberspacesec/crt.sh-skills/cmd/crtsh-cli@latest search example.com --exclude-expired --deduplicate

输出默认是表格,加 -o json 拿 JSON,-o csv 拿 CSV:

三种输出格式
$ crtsh-cli search example.com # 表格(默认,人读)
$ crtsh-cli search example.com -o json | jq '.[0].id' # JSON(机读)
$ crtsh-cli search example.com -o csv > certs.csv # CSV(Excel)
$ crtsh-cli get-raw-cert 12345 | openssl x509 -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: ...

形态三:MCP Server

bash
go run github.com/cyberspacesec/crt.sh-skills/cmd/mcp-server@latest --transport stdio

把它接到任何 MCP 兼容客户端(Claude Desktop、Cursor 等)即可。

三种传输

  • --transport stdio:本地 AI 客户端(默认)
  • --transport sse --addr :8080:SSE 远程
  • --transport http --addr :8080:Streamable HTTP

形态四:AI Skills(Claude Code 零安装)

~/.claude/settings.json 加:

json
{
  "mcpServers": {
    "crt-sh-skills": {
      "command": "go",
      "args": ["run", "github.com/cyberspacesec/crt.sh-skills/cmd/mcp-server@latest", "--transport", "stdio"]
    }
  }
}

之后在 Claude Code 里直接说"帮我查 example.com 的证书",AI 会自动调用 search_certificates 工具:

sequenceDiagram participant U as 用户 participant AI as Claude Code participant MCP as MCP Server participant CRT as crt.sh U->>AI: 帮我查 example.com 的证书 AI->>AI: 匹配 crtsh-search skill AI->>MCP: search_certificates(query=example.com) MCP->>CRT: GET ?q=example.com&output=json CRT-->>MCP: JSON 证书数组 MCP-->>AI: 结构化结果 AI-->>U: 用自然语言回答 + 证书列表

验证一下

随便挑一张真实证书 ID(例如 crt.sh 上的 12345)跑:

验证全链路
$ crtsh-cli get-cert 12345
crt.sh ID: 12345
Subject: CN=example.com
Issuer: CN=... (CA ID: 12346)
SHA-256: abcd1234...
Validity: 2024-01-02 .. 2025-01-02
✓ 全链路通

能看到签发者、有效期、SAN、SHA 指纹等详情就说明通了。

下一步

想了解设计取舍?看 设计理念