创建 ACME EAB 凭据
为证书创建 ACME External Account Binding(EAB)凭据。
EAB 凭据用于在 ACME 客户端(如 acme.sh、Certbot、Caddy 等)中注册账户,
实现证书的自动申请、续期和管理。首次创建会返回 eab_kid 和 directory(ACME 目录地址);
HMAC Key 仅在首次创建时返回一次,后续调用不再包含,如需获取新 HMAC Key 请使用轮换接口。
接口地址
POST /api/v1/certificate/acme/eab-create
Host:
...
完整地址
/api/v1/certificate/acme/eab-create
请求
Content-Type: application/json
Content-Length: 24
{
"service_id": "J94V73" // 证书编号,必填,下单时候返回的 `service_id`
}
响应
- 首次创建
- 已存在时再次调用
- errors
HTTP/1.1 200 OK
Content-Type: application/json
{
"success": true,
"data": {
"order_id": "TA-xxxxx", // CA 侧订单号
"directory": "https://acme.ca.example/directory", // ACME 目录地址
"eab_kid": "eab-key-xxxxx", // EAB Key Identifier
"eab_mac_key": "hmac-key-xxxxx", // EAB HMAC Key(仅首次创建时返回,请立即保存)
"existing": false, // false = 本次新建,true = 已存在直接返回
"white_ips": [] // 当前 IP 白名单(空数组表示无限制)
}
}
HMAC Key 仅在创建时返回一次
eab_mac_key 仅在首次创建(existing 为 false)时返回,请立即保存到安全的位置。
后续调用本接口(existing 为 true)不再返回 eab_mac_key。
如需获取新的 HMAC Key,请调用轮换 EAB 凭据 接口。
HTTP/1.1 200 OK
Content-Type: application/json
{
"success": true,
"data": {
"order_id": "TA-xxxxx",
"directory": "https://acme.ca.example/directory",
"eab_kid": "eab-key-xxxxx",
"existing": true, // true = 凭据已存在,直接返回
"white_ips": ["192.168.1.0/24"]
}
}
existing 为 true 时响应不含 eab_mac_key。
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"success": false,
"message": "该证书不支持 ACME EAB"
}
错误码
| HTTP 状态码 | message | 含义与处理建议 |
|---|---|---|
| 400 | 该证书不支持 ACME EAB | 证书供应商无法创建 EAB 凭据 |
| 400 | 证书尚未提交至 CA | 证书还未提交至 CA(ca_order_number 为空),请先完成证书申请流程 |
| 404 | The certificate is not found | 证书不存在,或不属于当前 API 密钥对应的工作空间 |
| 422 | The service ID is required | 未提供证书编号 service_id |
后续步骤
创建 EAB 凭据后,可在 ACME 客户端中使用返回的 directory、eab_kid 和 eab_mac_key 完成注册:
# acme.sh 示例
acme.sh --register-account -m my@example.com \
--server https://acme.ca.example/directory \
--eab-kid "eab-key-xxxxx" \
--eab-hmac-key "your-hmac-key"
如需限制只有特定 IP 才能使用此 EAB 凭据,请调用 更新 IP 白名单 接口。