主题
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_URL | sign-ca 镜像地址(build 产物 / compose 里 ca 服务使用) |
SIGN_KMS_IMAGE | sign-kms 镜像地址(build 时提供 .so / compose 里 kms 服务使用) |
FABRIC_CA_REF | fabric-ca 源码版本(仅 build 用) |
KMS_AUTH_SECRET | sign-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
当 .env 中 KMS_PIN 为空时:
sh
make test-setupMakefile: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此时同时启动 kms 与 ca。
健康检查
来源: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_URL | http://localhost:7054 |
E2E_OPS_URL | http://localhost:9443 |
E2E_CA_NAME | sign-ca |
E2E_ADMIN | admin |
E2E_ADMIN_PASS | adminpw |
TestMain 会先调用 waitReady(cfg.OpsURL+"/healthz", 30*time.Second)(e2e_test.go:63);超时会提示先跑 make test-setup(e2e_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 该节。