Skip to content

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
名称类型必填默认描述示例
domainsstring域名:多个域名使用,隔开*.example.com,example.com
typestringdns验证方式: http dnsdns

响应

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
名称类型必填默认描述示例
codestring域名验证码xxxxxx
algorithmstringECC加密算法: ECC RSAECC
issuerstringgoogle证书发行厂商(证书品牌): google letsencrypt zerosslgoogle

响应

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"
  }
}