OpenAPI
提示
暂未开放,请勿使用
基础
bash
https://openapi.httpsok.com/v1/
bash
# 添加以下请求头,token在控制台中查看
httpsok-token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
一、验证域名
申请证书前,需要先验证域名,验证通过后,返回一个验证码 code
,用于申请证书。
验证码有效期仅1分钟,请在1分钟内发起申请证书。
验证方式:
- dns: 可申请通配符证书,在DNS中添加一条
CNAME
记录即可 - http: 不能申请通配符证书,在nginx中添加三行配置即可
请求
bash
GET /cert/dv?type=dns&domains=demo.fastpix.cn,fastpix.cn
名称 | 类型 | 必填 | 默认 | 描述 | 示例 |
---|---|---|---|---|---|
domains | string | 是 | 无 | 域名:多个域名使用, 隔开 | *.example.com,example.com |
type | string | 否 | dns | 验证方式: http dns | dns |
响应
json
{
"code": 0,
"msg": "success",
"data": {
"code": "b174c8e1c8284416",
"type": "dns",
"items": [
{
"domain": "demo.fastpix.cn",
"type": "CNAME",
"name": "_acme-challenge.demo",
"value": "89789aff747e476f.demo.httpsok.com",
"valid": true,
"cost": "37"
}
],
"valid": true,
"cost": "38"
},
"traceId": null
}
json
{
"code": 0,
"msg": "success",
"data": {
"code": "635e3a1d55cf40ca",
"type": "http",
"items": [
{
"domain": "demo.fastpix.cn",
"valid": true,
"cost": "49"
}
],
"valid": true,
"cost": "50"
},
"traceId": null
}
http验证方式,nginx配置示例。
添加以下三行配置到nginx中即可。添加后,请勿删除。
bash
location ~ ^/\.well-known/acme-challenge/([-_a-zA-Z0-9]+)$ {
return 302 https://openapi.httpsok.com/v1/dv/$host/$1;
}
bash
http {
...
server {
...
location ~ ^/\.well-known/acme-challenge/([-_a-zA-Z0-9]+)$ {
return 302 https://openapi.httpsok.com/v1/dv/$host/$1;
}
...
}
}
二、申请证书
域名验证通过后,使用验证码,申请证书。
申请状态如下:
- 签发成功(
issued
):签发成功,返回证书和私钥。 - 签发中(
pending
):等待一段时间(建议10s)后再次发起请求。 - 签发失败(
failure
):申请证书失败。
请求
bash
GET /cert/apply?code=f96dc6387b1b4c02
名称 | 类型 | 必填 | 默认 | 描述 | 示例 |
---|---|---|---|---|---|
code | string | 是 | 无 | 域名验证码 | xxxxxx |
algorithm | string | 否 | ECC | 加密算法: ECC RSA | ECC |
issuer | string | 否 | 证书发行厂商(证书品牌): google letsencrypt zerossl |
响应
json
{
"code": 0,
"data": {
"status": "issued",
"issuer": "letsencrypt",
"subject": "*.example.com",
"notBefore": "2024-09-01 00:00:00",
"notAfter": "2024-11-01 00:00:00",
"domains": "*.example.com,example.com",
"certificate": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----",
"privateKey": "-----BEGIN RSA PRIVATE KEY-----...-----END RSA PRIVATE KEY-----"
}
}
json
{
"code": 0,
"data": {
"status": "pending"
}
}
json
{
"code": 0,
"data": {
"status": "failure"
}
}