devnull.cn Private CA

给你的设备和服务签发证书的私有 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 导入客户端即可信任该证书。

API

除公开下载端点外都需要 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