DAT CMS
DAT CMS 创建证书,将其存入数据库,并向签发和验证服务提供合适的证书。协议行为见DAT CMS 规范。
创建运行时配置
DAT 证书管理服务
服务器
Port默认: 8088
Hostname默认: Auto
运行命令
bash
检查 API
bash
数据库
API 缓存默认: 60
DAT 证书
签名算法
加密算法
证书签发延迟秒help
DAT 签发期间秒help
DAT TTL (寿命)秒help
DAT 证书生成计划 (Cron)help
访问控制
Master 令牌
生成 DAT 证书并获取服务器版本
Full Cert 令牌
获取 Full (Pair Key, Hash Key) 证书
Verify Cert 令牌
获取 Verify (Verify Key Only) 证书
使用 Docker 运行
以 non-root 用户运行容器。使用 SQLite 时,挂载可写数据目录。通过 Secret 注入机制传递令牌和数据库密码,而不是命令历史。
docker run --rm --name dat-cms -p 8088:8088 \
--user 10001:10001 \
-v "$PWD/dat-cms-data:/data" \
-e PORT=8088 \
-e DB_URI='sqlite:/data/data.db' \
-e TOKEN_MASTER='replace-with-a-secret' \
-e TOKEN_CERT_FULL='replace-with-a-secret' \
-e TOKEN_CERT_VERIFY='replace-with-a-secret' \
sarolab/dat-cms数据库
使用 DB_URI 配置 SQLite、PostgreSQL 或 MySQL 连接。MariaDB 通过 MySQL 协议连接。CMS 将证书查询结果缓存为快照,并在存储刷新临时失败时继续提供最后一份成功快照。
DB_CACHE_SECS 设置快照刷新间隔,DB_QUERY_TIMEOUT_SECS 限制刷新查询。如果没有成功快照且无法读取存储,服务返回 DAT_STORE_UNAVAILABLE。
访问角色
| 环境变量 | 权限 | 使用者 |
|---|---|---|
TOKEN_MASTER | 注册证书并获取受保护版本 | 运维 |
TOKEN_CERT_FULL | 获取完整证书 | DAT 签发服务 |
TOKEN_CERT_VERIFY | 获取仅验证证书 | 验证与解密服务 |
每个变量都接受逗号分隔的字母数字令牌。如果某角色的令牌列表为空,则其端点开放并记录警告。
证书生成
master 角色通过指定签名算法、加密算法、传播延迟、签发期间和 TTL 注册证书。在传播延迟期间,服务在新证书可签发前将其同步。
客户端集成
- 签发服务使用 full 令牌和完整证书端点。
- 验证服务使用 verify 令牌和仅验证选项。
- 检查首次同步的结果;如果启动必须失败,调用立即同步 API。
- 启用自动同步时,在应用关闭期间关闭管理器。
有关各语言的 builder 和关闭行为,请参阅库指南。
运维检查
/health和/version/api无需认证即可报告状态。- 配置该角色时,
/version需要 master 令牌。 - 从标准输出和标准错误收集日志。
- 转发关闭信号,并留出时间让数据库和调度器关闭。
Kubernetes
使容器端口和 probe 与服务端口一致,并为 non-root 用户以可写方式挂载数据目录。通过 Secrets 注入令牌和数据库连接详情。
securityContext:
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
containers:
- name: dat-cms
image: sarolab/dat-cms
ports: [{ containerPort: 8088 }]
readinessProbe: { httpGet: { path: /health, port: 8088 } }
livenessProbe: { httpGet: { path: /health, port: 8088 } }