基础信息
- 服务地址:https://ssl.prcvip.com/api
- 请求格式:JSON(Content-Type: application/json)
- 响应格式:JSON
接口1:创建 DNS 验证记录
请求信息
- 请求方法:POST
- 请求路径:/api?action=create
- Content-Type:application/json
请求参数
| 参数名 |
位置 |
类型 |
是否必填 |
说明 |
| action |
Query |
String |
是 |
固定值:create |
| domain |
Body/Query |
String |
是 |
需要申请证书的域名,如:7x0.cn 格式要求:仅支持字母、数字、-、.,不能以-开头/结尾,每个段最长63字符 |
请求示例
POST /api?action=create HTTP/1.1
Host: localhost:3000
Content-Type: application/json
{
"domain": "7x0.cn"
}
成功响应示例
{
"code": 200,
"message": "DNS 验证记录生成成功",
"data": {
"requestId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"txt_domain": "_acme-challenge.7x0.cn",
"txt_value": "EUq7UXkkqiCaYb4uNjNY0yMzf7D_cuMCEvgk3CFzQIQ",
"verify_url": "http://localhost:3000/api?action=verify&domain=7x0.cn",
"tips": [
"1. 请在域名解析后台添加 TXT 记录,主机记录为 _acme-challenge(无需加域名)",
"2. 添加后建议等待5-10分钟再验证(DNS 生效需要时间)",
"3. 验证记录有效期24小时,超时需重新生成",
"4. \"Cannot find DNS API hook for: dns_manual\" 是正常提示,无需处理",
"5. 验证前请用命令验证 TXT 记录是否生效:nslookup -type=TXT _acme-challenge.7x0.cn"
]
}
}
失败响应示例
{
"code": 500,
"message": "命令执行失败",
"data": {
"requestId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"debug_info": {}
}
}
接口2:验证 DNS 并生成证书
请求信息
- 请求方法:GET
- 请求路径:/api?action=verify&domain=xxx
请求参数
| 参数名 |
位置 |
类型 |
是否必填 |
说明 |
| action |
Query |
String |
是 |
固定值:verify |
| domain |
Query |
String |
是 |
需要验证的域名,需与创建验证记录时的域名一致 |
请求示例
GET /api?action=verify&domain=7x0.cn HTTP/1.1
Host: localhost:3000
成功响应示例
{
"code": 200,
"message": "证书生成并打包成功",
"data": {
"requestId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"download_url": "http://localhost:3000/api?action=download&domain=7x0.cn&filename=7x0.cn_cert_1740600000000.zip",
"cert_files": [
"7x0.cn.cer",
"7x0.cn.key",
"fullchain.cer",
"ca.cer"
],
"zip_file": "7x0.cn_cert_1740600000000.zip",
"tips": [
"1. 证书有效期通常为90天,请及时更新",
"2. 压缩包将在24小时后自动清理,请及时下载",
"3. 证书文件包含:域名证书、私钥、完整链证书、CA证书",
"4. 建议定期备份证书文件,避免丢失"
]
}
}
提示:验证过程会自动重试 3 次,每次间隔 10 秒;验证失败会精准提示 TXT 记录错误原因。
接口3:下载证书压缩包
请求信息
- 请求方法:GET
- 请求路径:/api?action=download&domain=xxx&filename=xxx.zip
请求参数
| 参数名 |
位置 |
类型 |
是否必填 |
说明 |
| action |
Query |
String |
是 |
固定值:download |
| domain |
Query |
String |
是 |
证书对应的域名 |
| filename |
Query |
String |
是 |
验证接口返回的 zip_file 文件名,格式:{domain}_cert_{timestamp}.zip |
请求示例
GET /api?action=download&domain=7x0.cn&filename=7x0.cn_cert_1740600000000.zip HTTP/1.1
Host: localhost:3000
响应说明
- 响应类型:application/zip
- 响应方式:流式下载,浏览器会自动触发文件保存
- 压缩包包含文件:{domain}.cer(域名证书)、{domain}.key(私钥)、fullchain.cer(完整链证书)、ca.cer(CA证书)
提示:压缩包文件会在生成后 24 小时自动清理,请及时下载;下载链接仅在文件有效期内有效。
通用响应格式
| 字段名 |
类型 |
说明 |
| code |
Number |
状态码:200 成功,400 参数错误,404 资源不存在,500 服务器错误 |
| message |
String |
响应提示信息 |
| data |
Object |
响应数据,包含 requestId(请求ID)和业务数据 |
常见错误码说明
- 400:参数错误(域名为空、域名格式错误、操作类型无效、文件名错误等)
- 404:资源不存在(验证信息不存在、证书压缩包不存在、接口路径错误)
- 500:服务器错误(acme.sh 执行失败、证书文件读取失败、压缩包生成失败等)
- CORS 错误:请求域名不在 CORS 白名单中
使用流程
- 调用创建验证记录接口(POST /api?action=create),传入需要申请证书的域名
- 根据返回的 TXT 记录信息,在域名解析后台添加对应的 DNS TXT 记录
- 等待 5-10 分钟(DNS 生效时间),调用验证接口(GET /api?action=verify)验证 TXT 记录并生成证书
- 通过验证接口返回的下载链接,下载证书压缩包
- 解压压缩包,获取证书文件并部署到服务器
注意事项
- 本服务为公益项目,请勿频繁请求或恶意请求,赞助请联系QQ:751667278
- 证书有效期约 90 天,需定期重新申请更新
- TXT 记录验证失败时,请检查记录值是否完全一致、DNS 是否全网生效、是否有多余的 TXT 记录