给你的设备和服务签发证书的私有 CA 服务
这不是公共 CA。每个账号有自己的自签根 CA,证书只在你主动导入
ca.pem 的地方有效;不同账号之间没有任何信任关系(没有共享根、没有中间 CA)。
# 1. 安装 CLI(其它平台见下载目录)
curl -fsSL -o devnull-cli \
https://files-1252667388.cos.ap-beijing.myqcloud.com/pub/devnull-cli-releases/latest/devnull-cli-linux-amd64
chmod +x devnull-cli
# 2. 建根 CA,然后签发一张证书
devnull-cli pca init
devnull-cli pca issue --name api.example.com --sans api.example.com,*.example.com
# 3. 查看 / 验证
devnull-cli pca list
devnull-cli pca inspect api.example.com
文件写到 ~/.devnull/certs/<common_name>/:key.pem(0600)、
crt.pem(仅 leaf)、ca.pem(根)、fullchain.pem(leaf + 根)。
把 ca.pem 导入客户端即可信任该证书。
除公开下载端点外都需要 theid 2.0 的 Authorization: Bearer <EdDSA JWT>;
可用 devnull-cli token 或 theid SDK 获取。
| 端点 | 说明 |
|---|---|
POST /pca | 动作型 API:create/read/list/revoke/delete/flush,cert_type 为 root 或 common |
GET /pca/status | 服务与构建信息 |
GET /pca/getca/<account_id> | 下载该账号的根证书(公开) |
GET /pca/crl/<account_id> | CRL(公开,OCSP 之外的另一条吊销通道) |
POST /pca/ocsp/<account_id>GET /pca/ocsp/<account_id>/<base64> | OCSP responder(公开,响应由 CA 签名) |
devnull-cli pca revoke api.example.com
devnull-cli pca crl # 下载 CRL
openssl ocsp -issuer ca.pem -CAfile ca.pem -cert crt.pem \
-url http://devnull.cn/pca/ocsp/<account_id> -resp_text
openssl verify -crl_check -CRLfile ca.crl.pem -CAfile ca.pem crt.pem
| 项目 | 值 |
|---|---|
| 根 CA | 每个账号一个,RSA-4096,10 年 |
| 证书 | 最多 11 张,RSA-2048,1 年,SAN 来自 --sans |
| 吊销 | OCSP + CRL;只对会检查的客户端生效 |
| CA 私钥 | 服务端持有(数据库内),不对外提供 |
身份服务 devnull.cn/identity · Python SDK theca · 服务端源码 github.com/xizhendu/theca · CLI 下载 devnull-cli