使用指南

Webhook

自建服务器接收证书推送的 Webhook 配置。

Webhook

通过 Webhook 将证书推送到您自建的 HTTPS 接口,适合自有服务器、自动化运维脚本或面板对接。请求会包含证书链与私钥,请只填写您自己控制的公网地址。

一、准备接收地址

  1. 在服务器上提供一个可公网访问的 URL,例如: https://your-server.example.com:8443/nestssl/deploy(允许合法自定义端口)
  2. 接口需对 POST 请求返回 HTTP 2xx,本站才视为部署成功
  3. 若接口返回 3xx,本站不会跟随重定向,请直接填写最终接收地址

二、在本站配置

  1. 证书部署 → 左侧 自建 → Webhook「+ 新增目标」
  2. 填写 Webhook URL(生产须为 https;开发环境可用 http
  3. 验证字符串(选填):固定令牌,本站通过请求头透传,供您的程序校验
  4. 点击 「测试」 确认能收到测试事件 → 保存
  5. 在证书详情 上传私钥(Webhook 部署强制要求私钥)
  6. 关联与推送 为证书勾选该目标(可选 自动

三、请求说明

本站向您的 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

点击部署目标的「测试」时发送:

JSON
{
    "event": "certificate.deploy.test",
    "message": "NestSSL 部署目标连通性测试",
    "timestamp": "2026-05-29T10: 30: 00+08: 00"
}

正式部署(certificate.deploy

证书签发、重签或手动部署时发送。trigger 取值:

含义
issued 首次签发后自动推送
reissued 重签后自动推送
manual 在关联与推送或证书详情手动推送
JSON
{
    "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 | null CA 中间证书链 PEM
fullchain_pem string 站点证书 + CA 链拼接 PEM
private_key_pem string 私钥 PEM(正式部署必有;无私钥时不会发起请求)

PEM 字段中的换行在 JSON 里以 \n 转义。

四、接收端示例逻辑

  1. 校验 X-NestSSL-Token(若已配置)
  2. 解析 JSON,写入 Nginx/Apache 证书路径
  3. 执行 reload 或重启服务
  4. 返回 200 OK

本站 不会 代为在您的服务器上安装证书,仅负责推送数据。

五、安全说明

  • 生产环境必须使用 HTTPS(本站会拒绝 HTTP Webhook)
  • 禁止 URL 中的用户名/密码、localhost、私网、回环、链路本地、云元数据及不可公网路由地址
  • 域名的全部 A/AAAA 解析结果都必须为安全公网地址;混合公网/私网会被拒绝
  • DNS 解析失败时拒绝配置/出站,并返回中文错误
  • 本站不会自动跟随 3xx 重定向
  • 配置验证字符串并校验请求头 X-NestSSL-Token
  • 私钥不会写入本站应用日志或连通性测试载荷
  • 私钥写入文件时设置适当文件权限(如 600

相关文档