主题
sign-pki · 模块详解
顶层目录
text
sign-pki/
├── ca-server/ 在线 Fabric CA Server 镜像、配置与 e2e
├── pki-cli/ 离线 CA 仪式与公开材料工具
├── local-run/ 本地 KMS + 三类 CA 编排
├── docs/ 架构标准、生产上线与 Fabric CA 指南
├── Makefile 构建、启动和 e2e 入口
└── README.mdca-server/
| 路径 | 内容 |
|---|---|
Dockerfile | Fabric CA v1.5.22 的 PKCS#11 构建与运行镜像 |
conf/fabric-ca-server-config.yaml | 开发/e2e 配置,不是生产模板 |
templates/production/identity-ca...yaml | Identity Intermediate CA 生产配置骨架 |
templates/production/tls-ca...yaml | TLS Intermediate CA 生产配置骨架 |
templates/production/wallet-idemix-ca...yaml | Wallet Idemix CA 生产配置骨架 |
e2e/ | 通过标准 HTTP wire 协议覆盖 CAInfo、Enroll、Register、Reenroll、Revoke 与 CRL |
生产模板不包含私钥、PIN/JWT、数据库密码或 Enrollment Secret。bootstrap-tls/ 与数据库客户端材料必须由部署系统以 Secret 挂载。
pki-cli/
pki-cli 是独立 Go module。命令入口在 main.go 和 commands/execute.go:
text
pki-cli bundle generate
pki-cli bundle verify
pki-cli ca self-sign
pki-cli ca csr
pki-cli ca sign
pki-cli inspect
pki-cli verify主要包:
| 包 | 关键能力 |
|---|---|
bundle | 严格解析 Catalog、验证目标依赖、原子发布 Bundle、校验 checksum/manifest |
ceremony | Root 自签、Intermediate CSR、Root 签 Intermediate |
material | 只读检查与按 profile 验证公开材料 |
pki | 固定 CA 策略、PKCS#11 signer、SKI、PEM 与原子写入 |
cliio | text 与 schemaVersion=v1 JSON Envelope |
apperr | 稳定应用错误码 |
固定证书策略由代码执行:Root pathLen=1,Intermediate pathLen=0;两者使用 ECDSA P-256/P-384、禁止 SAN/EKU,并要求 CertSign | CRLSign | DigitalSignature。CSR 只包含 Subject 和公钥,不允许请求 SAN、属性或扩展。
CA Bundle
bundle-catalog.example.yaml 定义:
- 输出目录和 PKCS#11 Client 路径;
- KMS Profile(Endpoint、PIN 环境变量名、SKI);
- 组织(类型、Legal Name、MSP ID、Subject 字段);
- 目标(Identity/TLS Root、Identity/TLS Intermediate、Wallet CA)及签发关系。
Intermediate / Wallet 子目录可直接作为 Fabric CA HOME 的只读证书层,提供:
text
ca-cert.pem
ca-chain.pem
manifest.json
checksums.sha256ca.keyfile 保持为空,运行时通过 PKCS#11 定位 HSM Key。Wallet Bundle 不包含 Idemix 私钥,且 manifest 明确标记其不属于 Network MSP。
local-run/
| 路径 | 用途 |
|---|---|
kms/docker-compose.yaml | 可选的本地 sign-kms profile |
ca-server/docker-compose.ca.yaml | TLS、Identity、Wallet 三个 CA |
ca-server/bundles/ | 从 pki-cli 生成并挂载的公开 CA Bundle |
ca-server/config/ | 本地 CA 配置 |
ca-server/.env | 仅本地 Secret,不提交 |
docs/
pki-architecture-standard.md:规范性信任与治理标准,是实现边界的唯一来源。fabric-ca-production-rollout.md:生产上线、TLS 自举、mTLS 与验收清单。fabric-ca-server-guide.md:基于当前 Fabric CA 版本和实际配置的服务端指南。
推荐阅读代码顺序
AGENTS.md与docs/pki-architecture-standard.md。- 根目录
README.md、Makefile、两个 Dockerfile。 pki-cli/commands/execute.go与各命令文件。ceremony/、material/、bundle/。pki/中的固定策略和 PKCS#11 实现。ca-server/templates/production/与local-run/,对照生产/开发边界。