添加证书

通过导入现有证书文件或直接申请新证书的方式,为 PBX 添加证书。

数量限制

PBX 支持最多 3 个 PBX 服务器证书和 20 个受信任证书。

请求 URL

POST {base_url}/{api_path}/certificate/create?access_token={access_token}

请求参数

参数 是否必填 类型 说明
type String 证书类型。
取值范围
  • trusted:受信任证书。
  • server:PBX 服务器证书。
ca_type String 添加证书的方式。
取值范围
  • upload:导入现有证书文件。
  • apply:申请新证书。
注:
  • 该参数在 typeserver 时必填。
  • 要导入证书,确保你已先上传所需证书至 PBX 的临时存储区域。
name String 证书文件名。
注:
  • 该参数在导入证书时必填,包括以下场景:
    • typetrusted
    • typeserverca_typeupload
  • 可在 上传证书 后,从响应中的 file 字段中获取证书文件名。
issue_to String 要与证书关联的域名。
注: 该参数在申请证书时必填 (typeserverca_typeapply)。
auto_renewal Integer 是否为导入的 PBX 服务器证书启用自动刷新。
取值范围
  • 0:禁用。
  • 1:启用。
注: 此参数仅在 typeserverca_typeupload 时生效。
dns_provider String 用于证书申请或自动刷新的 DNS 提供商。
注:
  • 此参数在以下场景中必填:
    • auto_renewal 设为 1
    • typeserverca_typeapply.
  • 关于具体的参数值,请参见 支持的 DNS 提供商 中的 标识名称 栏。
auth_info_list Array<Auth_Info> 证书申请和自动刷新所需的 DNS 验证信息。
注: 此参数在以下场景中必填:
  • auto_renewal 设为 1
  • typeserverca_typeapply.
Auth_Info
注:
  • 你必须提供 DNS 提供商所要求的整套参数,否则会导致请求失败。
  • 关于各 DNS 提供商所需的验证参数及其值的类型,请参见 支持的 DNS 提供商
参数 是否必填 类型 说明
k String DNS 提供商定义的验证参数键名。
iv Integer 整型格式的验证参数值。
sv String 字符串格式的验证参数值。
bv Boolean 布尔型格式的验证参数值。

响应参数

1.
参数 类型 说明
errcode Integer 返回错误码。
  • 0:请求成功。
  • 非零值:请求失败。
注: 更多错误码和错误信息说明,请参见 错误码 & 错误信息
errmsg String 返回信息。
  • SUCCESS:请求成功。
  • FAILURE:请求失败。
name String 证书名称。
apply_status String
证书的当前申请状态。
  • issuing:申请中。
  • issuance_success:签发成功。
  • issuance_fail:签发失败。

示例

以下示例展示了两种不同的证书添加场景:

向 PBX 添加受信任证书
  1. 上传证书至 PBX 的临时存储区域

    请求示例

    POST /openapi/v1.0/certificate/upload?access_token=wOODrqhysk0aELacF87qd4lBvmbBY4IZ HTTP/1.1
    Host: 192.168.5.150:8088
    
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
    
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="type"
    
    trusted
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="file"; filename="/D:/project/certificate/example.domain.com.crt"
    Content-Type: <Content-Type header here>
    
    (data)
    ------WebKitFormBoundary7MA4YWxkTrZu0gW--
    

    响应示例

    HTTP/1.1 200 OK
    {
        "errcode": 0,
        "errmsg": "SUCCESS",
        "file": "example.domain.com.crt"
    }
  2. 将证书添加至 PBX。

    请求示例

    POST /openapi/v1.0/certificate/create?access_token=wTZBgrTvaWMNid53Vzbi1FE92E9qnrVg HTTP/1.1
    Host: 192.168.5.150:8088
    Content-Type: application/json
    {
        "type": "trusted",                  
        "name": "example.domain.com.crt"                 
    }

    响应示例

    HTTP/1.1 200 OK
    {
        "errcode": 0,
        "errmsg": "SUCCESS",
        "name": "example.domain.com.crt",
        "apply_status": "issuance_success"
    }
申请新证书

请求示例

POST /openapi/v1.0/certificate/create?access_token=wTZBgrTvaWMNid53Vzbi1FE92E9qnrVg HTTP/1.1
Host: 192.168.5.150:8088
Content-Type: application/json
{
    
    "type": "server",                  
    "ca_type": "apply",              
    "issue_to": "docstest.example.com",     
    "dns_provider": "alidns",         
    "auth_info_list": [      
       {
            "k": "AccessKeyId",
            "sv": "AKIAIXXXXXXXXXXAMPLE"
        },
        {
             "k": "AccessKeySecret",
             "sv": "wJalrXUXXXXXXXXXXLEKEY"
        },
        {
            "k": "PropagationTimeout",
            "iv": 300
        },
        {
            "k": "PollingInterval",
            "iv": 5
        },
        {
            "k": "TTL",
            "iv": 600
        }
    ]
}

响应示例

HTTP/1.1 200 OK
{
    "errcode": 0,
    "errmsg": "SUCCESS",
    "name": "docstest.example.com.pem",
    "apply_status": "issuing"
}