Webhook
通过 Webhook 将证书推送到您自建的 HTTP(S) 接口,适合自有服务器、自动化运维脚本或面板对接。
一、准备接收地址
- 在服务器上提供一个可公网或内网访问的 URL,例如:
https://your-server.example.com/nestssl/deploy - 接口需对 POST 请求返回 HTTP 2xx,本站才视为部署成功
二、在本站配置
- 进入 证书部署 →「+ 新增」→ 类型选 Webhook
- 填写 Webhook URL(支持
http或https) - 验证字符串(选填):固定令牌,本站通过请求头透传,供您的程序校验
- 点击 「测试」 确认能收到测试事件 → 保存
- 在部署页为证书勾选该目标
三、请求说明
本站向您的 URL 发送 POST 请求,Body 为 JSON。
事件类型
| event 值 | 说明 |
|---|---|
certificate.deploy.test |
测试连接 |
certificate.deploy |
正式部署 |
请求头
每次请求均包含以下 HTTP 头:
| 请求头 | 说明 |
|---|---|
Content-Type |
固定为 application/json |
User-Agent |
NestSSL 出站标识 |
X-NestSSL-Event |
与 JSON 中 event 字段一致 |
X-NestSSL-Token |
若配置了验证字符串则携带;不会写入 JSON 正文 |
示例:
POST /nestssl/deploy HTTP/1.1
Host: your-server.example.com
Content-Type: application/json
User-Agent: NestSSL-CertDeploy/1.0
X-NestSSL-Event: certificate.deploy
X-NestSSL-Token: your-secret-token
请在接收端校验 X-NestSSL-Token(若已配置),防止未授权调用。
JSON 请求示例
测试连接(certificate.deploy.test)
点击部署目标的「测试」时发送:
{
"event": "certificate.deploy.test",
"message": "NestSSL 部署目标连通性测试",
"timestamp": "2026-05-29T10:30:00+08:00"
}
正式部署(certificate.deploy)
证书签发、重签或手动部署时发送。trigger 取值:
| 值 | 含义 |
|---|---|
issued |
首次签发后自动推送 |
reissued |
重签后自动推送 |
manual |
在证书详情手动点击部署 |
{
"event": "certificate.deploy",
"trigger": "manual",
"certificate_id": 42,
"domain": "www.example.com",
"fingerprint": "a1b2c3d4e5f6...",
"issued_at": "2026-05-29",
"expires_at": "2026-12-15",
"certificate_pem": "-----BEGIN CERTIFICATE-----\nMIIF...\n-----END CERTIFICATE-----\n",
"ca_bundle_pem": "-----BEGIN CERTIFICATE-----\nMIIE...\n-----END CERTIFICATE-----\n",
"fullchain_pem": "-----BEGIN CERTIFICATE-----\nMIIF...\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIE...\n-----END CERTIFICATE-----\n",
"private_key_pem": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----\n"
}
字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
event |
string | 固定为 certificate.deploy |
trigger |
string | 触发方式:issued / reissued / manual |
certificate_id |
int | 本站证书记录 ID |
domain |
string | 证书域名 |
fingerprint |
string | 证书指纹(SHA-256) |
issued_at |
string | null | 签发日期,YYYY-MM-DD |
expires_at |
string | null | 到期日期,YYYY-MM-DD |
certificate_pem |
string | 站点证书 PEM |
ca_bundle_pem |
string | CA 中间证书链 PEM |
fullchain_pem |
string | 站点证书 + CA 链拼接 PEM |
private_key_pem |
string | null | 私钥 PEM;未保存私钥时为 null |
PEM 字段中的换行在 JSON 里以
\n转义。private_key_pem为null时,请从本地密钥库获取私钥后再安装。
四、接收端示例逻辑
- 校验
X-NestSSL-Token(若已配置) - 解析 JSON,写入 Nginx/Apache 证书路径
- 执行
reload或重启服务 - 返回
200 OK
本站 不会 代为在您的服务器上安装证书,仅负责推送数据。
五、安全建议
- 使用 HTTPS 接收端点
- 配置验证字符串并校验请求头
- 限制来源 IP(若您的网络环境支持)
- 私钥写入文件时设置适当文件权限(如
600)