集成方式
cert-skills 的四种交付方式背后是同一个核心库 pkg,区别只在"怎么调"。本页帮你选对方式。
选型决策树
Skills(推荐:AI Agent)
本质:49 个 .md 提示词文件,每个是一个"可执行技能"。复制进 .claude/skills/ 后,Agent 自动知道:
- When to Use — 哪些用户意图该触发这个技能
- When NOT to Use — 边界,避免选错工具
- Instructions — 该调哪个 MCP 工具 / CLI 命令、怎么解读输出
- Anti-Patterns — 常见误用
bash
# 一键安装全部 49 个技能
cp -r .claude/skills/ /your/project/.claude/skills/技能文件长这样(节选):
markdown
---
name: certificate-analysis
description: Use when performing SSL/TLS security analysis on a domain...
allowed-tools: ["mcp__certificate-skills__cert_analyze_security"]
---
# certificate-analysis
## When to Use
- 用户问"分析 example.com 的证书安全"
## Instructions
1. 运行 cert_analyze_security(target="DOMAIN")
2. 读取 0-100 评分
...Skills + MCP 的分工
Skills 不执行任何代码,它只是教 Agent 怎么用 MCP/CLI。所以 Skills 通常和 MCP 配对:Skills 给智能(何时用、怎么用),MCP 给执行(实际跑工具)。
CLI(推荐:人类与脚本)
本质:cert-skills 二进制,52 个子命令,全局 -o text|json|csv。
bash
cert-skills analyze example.com -o json | jq '.score'
cert-skills jarm suspicious-server.com
cert-skills sign-cert --ca-cert ca.pem --ca-key ca-key.pem -n app.local
cert-skills generate-crl --ca-cert ca.pem --ca-key ca-key.pem --serials 12345特点:
- 单文件二进制,无运行时依赖,适合 CI / 容器
json输出可管道给jq/ 脚本csv输出适合 Excel / 批量报告(仅批量命令)
MCP Server(推荐:Claude Code)
本质:cert-skills-mcp 进程,通过 stdio 暴露 57 个 MCP 工具。
在 Claude Code 配置(.mcp.json 或全局):
json
{
"mcpServers": {
"certificate-skills": {
"command": "cert-skills-mcp",
"args": []
}
}
}配置后,Claude 会把 cert_analyze_security、cert_jarm 等当作原生工具调用,无需手敲命令。
MCP 与 CLI 的不对称
MCP 工具大多只支持在线域名分析(需要实时拨号取 tls.ConnectionState)。离线文件分析请用 CLI 的文件路径模式。这是当前 MCP 与 CLI 的主要不对称点。
Go SDK(推荐:程序化)
本质:import pkg "github.com/cyberspacesec/certificate-skills/pkg",50+ 导出函数。
go
import pkg "github.com/cyberspacesec/certificate-skills/pkg"
// 在线
result, err := pkg.AnalyzeSecurity("example.com")
// 离线(无网络)
keyUsage := pkg.CheckKeyUsageFromCert(cert)
distrusted := pkg.CheckDistrustedCAFromCert(chain)
score, err := pkg.AnalyzeSecurityFromCert(cert, "example.com")适合:写自己的扫描器、嵌入现有安全平台、做批量流水线。pkg 函数命名规律:
| 后缀 | 含义 | 网络 |
|---|---|---|
AnalyzeSecurity(target) | 在线域名 | ✅ 拨号 |
AnalyzeSecurityFromCert(cert) | 离线证书 | ❌ 零网络 |
ScanCertSecurity(target) | 在线 18 项 | ✅ |
ScanCertSecurityFromChain(cert, host, state) | 离线(state 可空) | ❌ |
CheckCAA(target) | 在线 DNS | ✅ |
CheckCAAFromCert(...) | — | 离线版用 wire 解析 |
能力矩阵:哪个方式能做什么
| 能力 | Skills | CLI | MCP | Go SDK |
|---|---|---|---|---|
| 安全评分(在线) | ✅ | ✅ | ✅ | ✅ |
| 安全评分(离线文件) | ⚠️ | ✅ | ❌ | ✅ |
| 18 项证书检查 | ✅ | ✅ | ✅ | ✅ |
| TLS 漏洞扫描 | ✅ | ✅ | ✅ | ✅ |
| JARM / JA3 | ✅ | ✅ | ✅ | ✅ |
| PKI 签发(根/中间/叶子) | ✅ | ✅ | ✅ | ✅ |
| CRL 生成/解析 | ✅ | ✅ | ✅ | ✅ |
| 批量测绘 map-scan | ✅ | ✅ | ✅ | ✅ |
| CT 搜索/子域枚举 | ✅ | ✅ | ✅ | ✅ |
| 指纹库管理 | ✅ | ✅ | ✅ | ✅ |
| 工作流编排 | ✅ | ✅ | — | 部分 |