OpenAPI 接口
CertCloud 提供 OpenAPI 对外接口, 支持证书申请、下载证书及私钥、证书续期及吊销功能。
	       
	要使用 OpenAPI,需要准备 API 授权码以及一些 HTTP POST 请求参数向 URL 发出请求。 请注意,以下 {accountID} 必须替换为申请的授权码。
API Request URL:
https://api.certcloud.cn/openapi/v1/orders/{accountID}
申请证书
Request Headers:
| Key | Value | 
|---|---|
| Content-Type | “application/json” | 
[ HTTP POST ] Request Parameters:
| Parameter | Type | Description | Example | 
|---|---|---|---|
| {accountID} | Path | [Required] OpenAPI 授权码。在创建 APIKey 后, 账户ID列所示值 | “ESurMKDG” | 
| app_info | Body | [Required] 自定义的客户端名称 | “MyDomainCLI” | 
| token | Body | [Required] OpenAPI 个人口令,在创建 APIKey 后, Secret Key列所示值 | “2cab1da0149c9e483…” | 
| csr | Body | [Required] 证书签名请求,PEM格式 | “—–BEGIN CERTIFICATE REQUEST—–\nMIIClTCCA….\n—–END CERTIFICATE REQUEST—–” | 
| encrypted_key | Body | [Optional] 加密后的私钥数据(PEM格式),使用云端存储加密私钥。 | “—–BEGIN RSA PRIVATE KEY—–\nProc-Type: 4,ENCRYPTED\nDEK-Info: AES-256-CBC,e2508472105a6afb9e7e67232c10bf27\n\nVg/7P2Nfce+ZcJJ……\n—–END RSA PRIVATE KEY—–” | 
| validity | Body | [Optional] 整数,指定证书有效期,单位:天 | 30 | 
API Response:
如果你的 API 请求成功,将会返回 JSON 格式的 API 响应,其中包含有订单ID、证书ID、证书数据等信息。
 {
   "code": 0, 
   "error": "error information",
   "data": {
       "order_id": "Order ID",
       "cert_id": "Cert ID",
       "cert": "Cert PEM",
       "chain": "Chain PEM",
   },
 }
Response Objects:
| Parameter | Type | Description | 
|---|---|---|
| code | int | 返回值,0:成功;其他值请参考 | 
| error | string | 错误详情 | 
| order_id | string | 申请成功后,提交的订单的ID | 
| cert_id | string | 申请成功后,颁发的证书的ID。用于取回证书使用,请妥善保存。 | 
| cert | string | PEM格式,证书数据 | 
| chain | string | PEM格式,证书链数据 | 
Example:
$ curl -X POST "http://api.certcloud.cm/openapi/v1/orders/{accountID}" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"token\": \"密钥令牌\", \"app_info\": \"MyProject\", \"csr\": \"证书签名请求PEM\", \"encrypted_key\": \"加密后的私钥PEM\", \"validity\":30}"
CSR参数必须是 PEM 格式,其中换行符必须使用转义字符\n,encrypted_key同理。
取回证书
Request Headers:
| Key | Value | 
|---|---|
| Content-Type | "application/json" | 
[ HTTP GET ] Request Parameters:
| Parameter | Type | Description | Example | 
|---|---|---|---|
| {accountID} | Path | [Required] OpenAPI 授权码。在创建 APIKey 后, 账户ID列所示值 | “ESurMKDG” | 
| token | Body | [Required] OpenAPI 授权口令,在创建 APIKey 后, Secret Key列所示值 | “2cab1da0149c9e483…” | 
| cert_id | Body | [Required] 指定要取回的证书ID, 在第一次申请证书后可获得 | “Bimx11Pq” | 
API Response:
如果你的 API 请求成功,将会返回 JSON 格式的 API 响应,其中包含有证书数据、加密私钥(可选)、证书链(可选)等信息。
{
   "code": 0,                    
   "error": "error information", 
   "data": {
       "cert": "Cert PEM",         
       "encrypted_key": "Encrypted Key PEM", 
       "chains": "Cert Chain PEM"
   },
}
Response Objects:
| Parameter | Type | Description | 
|---|---|---|
| code | int | 返回值,0:成功;其他值请参考 | 
| error | string | 错误详情 | 
| cert | string | PEM格式,证书数据 | 
| encrypted_key | string | PEM格式,证书私钥数据 | 
| chain | string | PEM格式,证书链数据 | 
Example:
$ curl -X GET "https://api.certcloud.cn/openapi/v1/orders/{accountID}" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"cert_id\": \"证书ID\", \"token\": \"密钥口令\"}"
 July 7, 2021