Skip to content

sign-ca · 快速开始

本章严格跟随 README.md 第 17-117 行。

前置依赖

来源:README.md 第 17-21 行。

  • Docker 24+(含 buildx
  • 能访问 ${SIGN_KMS_IMAGE} 所指 registry(拷 .so 用)
  • 若推多架构镜像:docker login 已登录目标 registry

配置 .env

来源:README.md 第 25-39 行。

sh
cp .env-example .env
vim .env

必填变量(README 第 34-39 行表格):

变量用途
IMAGE_URLsign-ca 镜像地址(build 产物 / compose 里 ca 服务使用)
SIGN_KMS_IMAGEsign-kms 镜像地址(build 时提供 .so / compose 里 kms 服务使用)
FABRIC_CA_REFfabric-ca 源码版本(仅 build 用)
KMS_AUTH_SECRETsign-kms JWT 签名密钥(kms 服务启动时读取)
KMS_LABEL / KMS_PIN第一次启 kms 后,从 UI 创建的 token label + JWT,回填即可

TIP

README 第 41 行说明:多架构平台通过 make build-multi 命令级参数传入(默认 linux/amd64,linux/arm64),不需要写进 .env

构建

来源:README.md 第 43-57 行、Makefile:40-57

本地单架构(加载到当前 docker):

sh
make build

多架构构建并推送:

sh
make build-multi
# 可覆盖默认平台
make build-multi PLATFORM=linux/amd64

两阶段启动

来源:README.md 第 59-98 行、docker-compose.yaml:1-8 注释。

第一阶段:起 KMS 创建 token

.envKMS_PIN 为空时:

sh
make test-setup

Makefile:59-70 中根据 KMS_PIN 是否为空决定起哪些服务。第一次只起 kms

随后在浏览器打开 http://localhost:9201(sign-kms Web UI),创建 token,得到 label 与 JWT。

第二阶段:起 CA

把得到的 label / JWT 写回 .env

dotenv
KMS_LABEL=<label-from-UI>
KMS_PIN=<jwt-from-UI>

再次执行:

sh
make test-setup

此时同时启动 kmsca

健康检查

来源:README.md 第 88 行、Dockerfile:89-90

sh
curl http://localhost:9443/healthz

集成 / e2e 测试

来源:README.md 第 113-117 行、Makefile:78-80

sh
make test-e2e

实际命令(Makefile:79-80):

sh
go test -tags=e2e -v -count=1 ./e2e/...

环境变量(e2e/e2e_test.go:56-69):

变量默认值
E2E_CA_URLhttp://localhost:7054
E2E_OPS_URLhttp://localhost:9443
E2E_CA_NAMEsign-ca
E2E_ADMINadmin
E2E_ADMIN_PASSadminpw

TestMain 会先调用 waitReady(cfg.OpsURL+"/healthz", 30*time.Second)e2e_test.go:63);超时会提示先跑 make test-setupe2e_test.go:65)。

停止与清理

来源:Makefile:72-85

sh
make test-teardown    # docker compose down(保留 volume)
make clean            # docker compose down -v + rmi

故障排查

来源:README.md 第 124-136 行。完整内容请直接看 README 该节。

下一步

  • 核心流程 — Dockerfile 三阶段 / docker-compose 两阶段 / sign-ca-cli 三件事 / e2e 10 个 scenario
  • API 参考 — 端口 + Makefile 目标 + sign-ca-cli 子命令
  • 配置fabric-ca-server-config.yaml 实测字段、kms-conf/sign-ca.yaml、多 CA 部署