应用证书管理

创建应用级别证书

URI

POST /admin-api/applications/http/{app_id}/phases/ssl_cert/certs

请求参数

  • enabled

    type: boolean

    required: yes

    description: 是否启用该证书

  • label:

    type: string

    required: no

    description: 该证书的标签 / 描述

  • global_cert

    type: integer

    required: no (当使用全局证书时,该字段为必选)

    description: 全局证书的 ID 。应用可以使用全局证书的 ID 来引用已经创建好的全局证书

  • server_cert

    type: string

    required: no (当使用手动上传的证书时,该字段为必选)

    description: PEM 格式的证书文件

  • priv_key

    type: string

    required: no (当使用手动上传的证书时,该字段为必选)

    description: PEM 格式的证书私钥文件

  • cert_chain:

    type: string

    required: no

    description: 证书链。通常不需要上传

  • client_verify

    type: boolean

    required: no

    description: 是否启用客户端证书校验。默认值为 false,即不启动

  • ca_cert

    type: string

    required: no (当开启客户端校验后,该字段为必选)

    description: 为客户端签发证书使用的 CA

  • acme_host

    type: array

    required: no (当使用 ACME 签发证书时,该字段为必选)

    description: 使用 ACME 签发证书,可以同时填多个域名,最终将多个域名签发到一张证书中

  • acme_providers

    type: integer

    required: no

    description: 指定在全局配置好的支持 ACME 的证书签发商 id,如果未指定,则默认使用 Let’s Encrypt 进行证书签发

  • acme_csr_type

    type: string

    required: no

    description: 指定 acme 签发证书的加密算法,目前支持 rsaec 两种算法,默认值为 rsa

  • acme_use_uploaded_key

    type: boolean

    required: no

    description: 是否在 ACME 签发过程中使用用户手动上传的私钥

  • acme_takeover

    type: boolean

    required: no

    description: 该选项指定手动上传的证书,是否由指定的 ACME 服务更新,默认值为 false

请求示例

Shell

curl -X POST \
  -H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
  http://{admin-site}/admin-api/applications/http/1/phases/ssl_cert/certs \
  -d '{"global_cert": 1}'

响应示例

Status: 200 OK
{
  "data": {"id": 1},
  "status": 0
}

获取应用级别证书列表

URI

GET /admin-api/applications/http/{app_id}/phases/ssl_cert/certs

请求示例

Shell

curl \
  -H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
  http://{admin-site}/admin-api/applications/http/1/phases/ssl_cert/certs

响应示例

Status: 200 OK
{
  "data": [
    {
      "client_verify": false,
      "enabled": true,
      "global_cert": 1,
      "id": 1,
    }
  ],
  "status": 0
}

更新应用级别证书

URI

PUT /admin-api/applications/http/{app_id}/phases/ssl_cert/certs/{cert_id}

请求示例

Shell

curl -X PUT \
  -H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
  http://{admin-site}/admin-api/applications/http/1/phases/ssl_cert/certs/1 \
  -d '{"global_cert": 2}'

响应示例

Status: 200 OK
{"status":0}

删除应用级别证书

URI

DELETE /admin-api/applications/http/{app_id}/phases/ssl_cert/certs/{cert_id}

请求示例

Shell

curl -X DELETE \
  -H "API-Token: 1df87165-3593-4eca-a910-9ac20005e6ec" \
  http://{admin-site}/admin-api/applications/http/1/phases/ssl_cert/certs/1 \

响应示例

Status: 200 OK
{ "status": 0 }