Skip to content

sign-pki · 模块详解

顶层目录

text
sign-pki/
├── ca-server/     在线 Fabric CA Server 镜像、配置与 e2e
├── pki-cli/       离线 CA 仪式与公开材料工具
├── local-run/     本地 KMS + 三类 CA 编排
├── docs/          架构标准、生产上线与 Fabric CA 指南
├── Makefile       构建、启动和 e2e 入口
└── README.md

ca-server/

路径内容
DockerfileFabric CA v1.5.22 的 PKCS#11 构建与运行镜像
conf/fabric-ca-server-config.yaml开发/e2e 配置,不是生产模板
templates/production/identity-ca...yamlIdentity Intermediate CA 生产配置骨架
templates/production/tls-ca...yamlTLS Intermediate CA 生产配置骨架
templates/production/wallet-idemix-ca...yamlWallet 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.gocommands/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
ceremonyRoot 自签、Intermediate CSR、Root 签 Intermediate
material只读检查与按 profile 验证公开材料
pki固定 CA 策略、PKCS#11 signer、SKI、PEM 与原子写入
cliiotextschemaVersion=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.sha256

ca.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.yamlTLS、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 版本和实际配置的服务端指南。

推荐阅读代码顺序

  1. AGENTS.mddocs/pki-architecture-standard.md
  2. 根目录 README.mdMakefile、两个 Dockerfile。
  3. pki-cli/commands/execute.go 与各命令文件。
  4. ceremony/material/bundle/
  5. pki/ 中的固定策略和 PKCS#11 实现。
  6. ca-server/templates/production/local-run/,对照生产/开发边界。