接口说明

CA证书接口

创建CA根证书

方法 api 说明
POST /v1/pki/rootcert?clientToken={clientToken} 建一个CA根证书,用来签发服务端子证书和客户端子证书

请求参数

字段名称 类型 是否必须 说明
clientToken String 1 ~ 64个字符,用于保证接口幂等性。
duration int 1 ~ 50 * 365天,有效期,以天为单位。
certRequestInfo CertRequestInfo 证书请求信息,CertRequestInfo对象。每个字段1 ~ 40个字符

CertRequestInfo对象

字段名称 类型 是否必须 说明(每个字段1 ~ 40个字符)
country String 国家
commonName String 名称,唯一标志
organization String 组织机构
unit String 组织单元
emailAddress String 邮件联系地址

返回参数

字段名称 类型 是否必须 说明
certId String CA根证书唯一ID

请求示例

POST /v1/pki/rootcert?clientToken=97ebcae89b8411e898d0529269fb1459 HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T02:57:42Z
content-type: application/json
{
    "duration" : 700,
    "certRequestInfo" : {
        "country" : "CN",
        "commonName" : "root774076",
        "organization" : "Baidu corp",
        "unit" : "ait",
        "emailAddress" : "zhangsan@baidu.com"
    }
}

返回示例

HTTP/1.1 200 OK
x-bce-request-id: aaede8ef-49d8-4656-98fa-5bb2d4994945
Content-Type: application/json;charset=UTF-8
{
    "certId":"591eee7ccd51403a948d9e3837498661"
}

删除CA根证书

方法 api 说明
DELETE /v1/pki/rootcert/{certid} 删除一个根证书,若有子证书存在,则拒绝删除此根证书。

请求示例

DELETE /v1/pki/rootcert/a9cab7e662894cc3a22df42d209a5a19 HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T03:31:31Z

返回示例

HTTP/1.1 200 OK
x-bce-request-id: c85b2478-6608-4aee-90a6-3f9d1b16e352

查询CA根证书

方法 api 说明
GET /v1/pki/rootcert/{certid} 查询CA证书,同时返回CA证书。

返回参数

字段名称 类型 是否必须 说明
crl String 过期作废列表的URL。
downloadUrl String 下载链接,
/v1/pki/rootcert/${certId}/download?userId=xxx&Authorization=xxx, 其中Authorization为已经算好的签名,请求时候用这个链接,加上HttpHeader (Host:pkiiov.baidubce.com)

请求示例

GET /v1/pki/rootcert/a9cab7e662894cc3a22df42d209a5a19 HTTP/1.1
authorization:{authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T03:31:30Z

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 22b7f79a-5c25-463f-9ff3-d51322041a3a
Content-Type: application/json;charset=UTF-8
{
    "crl":"https://pkiiov.baidubce.com/v1/pki/crl?cmd=crl&format=PEM&issuer=C%3DCN%2C+O%3DBaidu+corp%2C+OU%3Dait%2C+CN%3Droot119276%2C+EMAILADDRESS%3Dzhangsan%40baidu.com",
    "downloadUrl":"https://pkiiov.baidubce.com/v1/pki/rootcert/a9cab7e662894cc3a22df42d209a5a19/download?Authorization=bce-auth-v1%2F790b329ee5194aae868c84ce254d2f63%2F2018-07-12T03%3A31%3A31Z%2F86400%2Fhost%2F28795a15e02a9cd8735ad5221eb18727693b93369f27b2baf374443840d96cb2&userId=b1f91fbe6fe54d2eaf70ef0025f1c3c2"
}

子证书接口

创建分组

方法 api 说明
POST /v1/pki/certgroup?clientToken={clientToken} 创建一个组,用来管理子证书。

请求参数CreateCertGroupRequest

字段名称 类型 是否必须 说明
clientToken String 1 ~ 64个字符,用于保证接口幂等性。
rootCertId String 分组所属根证书ID
groupName String 1 ~ 32个字符,组名

返回参数CreateCertGroupResponse

字段名称 类型 是否必须 说明
groupId String 组唯一ID

请求示例

POST /v1/pki/certgroup?clientToken=97ebcae89b8411e898d0529269fb1459 HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T03:54:34Z
content-type: application/json
{
"rootCertId" : "8ad516514b374e258f2e4cb13feaa294",
"groupName" : "root5group"
}

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 0208cb35-3c7a-4963-96c6-c2de78178f69
Content-Type: application/json;charset=UTF-8
{"groupId":"7686c05c1e4c47308b66eb8f90767d5f"}

删除分组

方法 api 说明
DELETE /v1/pki/certgroup/{groupid} 删除一个分组,若有子证书存在,则拒绝删除此分组。

示例同 删除CA根证书

查询分组

方法 api 说明
GET /v1/pki/certgroup/{groupid} 查询分组

返回参数GetCertGroupResponse

字段名称 类型 是否必须 说明
rootCertId String 根证书ID
serverCerts array[String] 服务端子证书ID列表
clientCerts array[String] 客户端子证书ID列表

请求示例

GET /v1/pki/certgroup/885e7b6c49aa452aa3d8c9228b466d49 HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T04:27:00Z

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 99bf7bf9-adbb-4a33-b08b-7628914d8110
Content-Type: application/json;charset=UTF-8
{"rootCertId":"c461aedaf99e49fbb467b5d9110eff74","serverCerts":[],"clientCerts":[]}

创建服务器端子证书

方法 api 说明
POST /v1/pki/servercert?clientToken={clientToken} 签发一个服务器端子证书。

请求参数CreateServerCertRequest

字段名称 类型 是否必须 说明
clientToken String 1 ~ 64个字符,用于保证接口幂等性。
groupId String 分组ID
deviceId String 1 ~ 36个字符,服务端设备ID
duration int 1 ~ 50 * 365天,有效期,以天为单位。
address array[String] 数组,传入签发服务证书的url地址组。
csr String 标准CSR请求数据,使用BASE64编码,PEM格式。注意:新创建证书的CN不能与当前没有废弃的子证书的CN相同,但可以与已经废弃的子证书的CN相同。

返回参数CreateSubCertResponse

字段名称 类型 是否必须 说明
certId String 证书唯一ID
downloadUrl String 下载链接,
/v1/pki/servercert/${certId}/download?userId=xxx&Authorization=xxx, 其中Authorization为已经算好的签名,请求时候用这个链接,加上HttpHeader (Host:pkiiov.baidubce.com)。

请求示例

POST /v1/pki/servercert?clientToken=97ebcae89b8411e898d0529269fb1459 HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T06:05:23Z
content-type: application/json
{
 "groupId" : "9a6254a868864e6189cfdcd422ede08e",
 "deviceId" : "IOT_SERVER_T23",
 "duration" : 300,
 "csr" : "-----BEGIN CERTIFICATE REQUEST-----\nMIIChTCCAW0CAQAwQjEOMAwGA1UECgwFQmFpZHUxCzAJBgNVBAYTAkNOMRUwEwYD\nVQQDDAxzZXJ2ZXI4MjQ0MzMxDDAKBgNVBAsMA2FpdDCCASIwDQYJKoZIhvcNAQEB\nBQADggEPADCCAQoCggEBAJy7qqDjTX2vAnqVR4QtPlx9ASdR+7fyyc17azIwsPyS\nr58HCPkEdaAleorMiAUbTGax6qpCj+G+4OqcnSzfE3HwXttsbPdcQnbMlHZMIawo\nNCKsmj3uEZFnv7NR69pRb8sU6ZzPaWztU2Fe46Q7DaaJMIb0f9g32lJ4iZ/6ebH9\ntpb0K8tGMQGANn+GHbwdbI1HelkNkDDN/O/5f8BkLKJl4+sv3OtmNkUTWeIZndKe\nRCLOrJMKH12wrMq4wKOnfrG66O0m9VrIf0pGLGGT88Nk4K6tPd0CvqTM7r5tvwiv\n4sEzAiCYAaCUT9iBtfyv0ZYBay5sIyBqN+7WkyXN7R0CAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAALctkm/5zuPxkdQjbnhq3gyIT7Qz9H/z6yFL/3fObeaB9/37dNhB\nQ6/AMTIcxeDFkc19GxNHC7rqJqJrURucs+Z/2jlDu3wo+LGzjWCPym7TQvJaaIvl\nnbIriOaUSXw7yMH1ml33Mf+VgCLK+JQeJkZAdmWDTVSXJibM9WRmRmO1HkgXo7io\nJo8yHjBafWaDr4rOxfneQuqn9blShps2u1+bGCQd1es9k/ibtNf7RQtw2PKQJKyo\njx5hZYYekgIBk0gJrSOPR4ZEzDXlw6IF9v8LHte5PTJqqyMg2gTkCe6Bu0Zp55Bq\neUL2U9tIdbE2n6ECiLCpgW4fu+8TE18Kdg==\n-----END CERTIFICATE REQUEST-----\n",
 "address" : [ "iotserver-t23.baidubce.com" ]
}

返回示例

HTTP/1.1 200 OK
x-bce-request-id: c9710aee-84ef-4831-9ca2-655375c9ce82
Content-Type: application/json;charset=UTF-8
{"certId":"72b366abcbed4c4c9dd4676529abd8c8","downloadUrl":"https://pkiiov.baidubce.com/v1/pki/servercert/72b366abcbed4c4c9dd4676529abd8c8/download?Authorization=bce-auth-v1%2F790b329ee5194aae868c84ce254d2f63%2F2018-07-12T06%3A05%3A27Z%2F86400%2Fhost%2Feca8fd83550e9ccfa14e6c30a5b67c78a16e1ecbd23bbc8fb103061b6b3230e1&userId=b1f91fbe6fe54d2eaf70ef0025f1c3c2"}

删除服务器端子证书

方法 api 说明
DELETE /v1/pki/servercert/{certid} 删除一个服务器端子证书。

示例同删除CA根证书

查询服务器端子证书1

方法 api 说明
GET /v1/pki/servercert/{certid} 查询服务器端子证书。

返回参数GetSubCertResponse

字段名称 类型 是否必须 说明
rootCertId String 根证书ID
groupId String 分组ID
downloadUrl String 下载链接,
/v1/pki/servercert/${certId}/download?userId=xxx&Authorization=xxx, 其中Authorization为已经算好的签名,请求时候用这个链接,加上HttpHeader (Host:pkiiov.baidubce.com)

请求示例

GET /v1/pki/servercert/0a891cc5fb2b4f519348c5662eaad62e HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T07:41:14Z

返回示例

HTTP/1.1 200 OK
x-bce-request-id: c26e00c5-21f1-402e-88b6-88f8b2b30cfc
Content-Type: application/json;charset=UTF-8
{"rootCertId":"7ff2619f20094b438f263588f6e9742e","groupId":"eb90ba976bd64d9991652381844e9365","downloadUrl":"https://pkiiov.baidubce.com/v1/pki/servercert/0a891cc5fb2b4f519348c5662eaad62e/download?Authorization=bce-auth-v1%2F790b329ee5194aae868c84ce254d2f63%2F2018-07-12T07%3A41%3A14Z%2F86400%2Fhost%2Fa88e9b6f126faaa08fbee84cbae1bac3d29403c5e0a02ac236ca672d5af1e3d3&userId=b1f91fbe6fe54d2eaf70ef0025f1c3c2"}

查询服务器端子证书2

方法 api 说明
GET /v1/pki/servercert/query?rootCertId={id}&groupId={groupId} 查询服务器端子证书信息。groupId为空或者不提供则返回根证书下所有服务器端子证书。rootCertId和groupId必须提供一个。

返回参数QueryServerCertResponse

字段名称 类型 是否必须 说明
serverCerts array[String] 服务器端子证书ID列表

请求示例

GET /v1/pki/servercert/query?rootCertId=b2796f0f16d747669f07f8761d8bc51d&groupId=14647baaa14c45608848ce7fe224f144 HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T08:23:42Z

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 7bb536ab-8166-4095-b69b-4477ed98445c
Content-Type: application/json;charset=UTF-8
{"serverCerts":[]}

服务器端子证书变更

方法 api 说明
PUT /v1/pki/servercert/{certId}/renew?clientToken={clientToken} 变更一个服务器端子证书。

请求参数RenewServerCertRequest

字段名称 类型 是否必须 说明
clientToken String 1 ~ 64个字符,用于保证接口幂等性。
duration int 1 ~ 50 * 365天,有效期,以天为单位。
newDeviceId String 1 ~ 36个字符,新的设备ID
newAddress array[String] 数组,传入签发服务证书的url地址组。
csr String 标准CSR请求数据,使用BASE64编码,PEM格式。注意:新创建证书的CN不能与当前没有废弃的子证书的CN相同,但可以与已经废弃的子证书的CN相同。

返回参数RenewSubCertResponse

字段名称 类型 是否必须 说明
downloadUrl String 下载链接,
/v1/pki/servercert/${certId}/download?userId=xxx&Authorization=xxx, 其中Authorization为已经算好的签名,请求时候用这个链接,加上HttpHeader (Host:pkiiov.baidubce.com)

请求示例

PUT /v1/pki/servercert/30dcabfe777a483d8769efec04d67804/renew?clientToken=97ebcae89b8411e898d0529269fb1459 HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T08:35:36Z
content-type: application/json
{
 "newDeviceId" : "IotServert23_NEW",
 "duration" : 700,
 "csr" : "-----BEGIN CERTIFICATE REQUEST-----\nMIIChTCCAW0CAQAwQjEOMAwGA1UECgwFQmFpZHUxCzAJBgNVBAYTAkNOMRUwEwYD\nVQQDDAxzZXJ2ZXI3Mzc3ODMxDDAKBgNVBAsMA2FpdDCCASIwDQYJKoZIhvcNAQEB\nBQADggEPADCCAQoCggEBALAwGHia+AkPFO+yLqZ8Wia5onYtKczDFBkt4RAi6efd\njyHBMpvodF4/RaFCQJnYOOETX04rrroll4N688oOfTOkeXdK/ASYeXKbaRCdPLvQ\nbwAbz7yhLMj6ICOZYFYsBLTYj+3gJrp3puU+C1osBcyF2Qcr8kccEUz7ErSr39CX\nRw4gnC7RBua6m3VQRNTObwiRVZ/BgSg4jysPYK0cQTPVNj9XU9WC9Zn1ocFL5rmt\n8VpSNu2o+uTTxWMmcA8LSMfAUDO9QNYSXWX1pZKxzhaAE20/Q3w/p8vaCOXB+161\nHnd2F172M3JGi/hPhINoX6/2jC+WVlRTW42lItMZ0WkCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEABrPcDw208aXiy6rGhfhxaer6OyMvUqd77oWAtw+G4ZbinEMkQcHg\nRgpuO3ayg3GX2Iea+4V4u7G0v6ZDq4mDubmK+bxbqkdRdFniAWc4pcWz0HWHTBpb\n9N217hwDoL95NvXYG5rVux751VKY8UI6zajlIUn0f6Zp7pLMgdDSVSgFL2TMJ83X\nJS5UI2leVtrruR+XDoEiYVkVeThTJveGYd/DspA56mSqsS0+B489hqVf7qlcZ54m\n0iHyNYYpX2LQ26mPM4YujK1jn8I/O6xl7EBr/Ss3dXt0D9gakAaehlteVSCwFMcW\nNpRQB5f2yR/Gjw+Z6Ggo4722MedNB/v55g==\n-----END CERTIFICATE REQUEST-----\n",
 "newAddress" : [ "iotserver-t23n.baidubce.com" ]
}

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 81f53933-2afe-4255-9afa-2949d237d32d
Content-Type: application/json;charset=UTF-8
{"downloadUrl":"https://pkiiov.baidubce.com/v1/pki/servercert/30dcabfe777a483d8769efec04d67804/download?Authorization=bce-auth-v1%2F790b329ee5194aae868c84ce254d2f63%2F2018-07-12T08%3A35%3A39Z%2F86400%2Fhost%2F749c3740ea1e91ff675c0cb65c1374162c1e8efeadb5cdde62573a4a4308a05f&userId=b1f91fbe6fe54d2eaf70ef0025f1c3c2"}

创建客户端子证书

方法 api 说明
POST /v1/pki/clientcert?clientToken={clientToken} 签发一个客户端子证书。

请求参数CreateSubCertRequest

字段名称 类型 是否必须 说明
clientToken String 1 ~ 64个字符,用于保证接口幂等性。
groupId String 分组ID
deviceId String 1 ~ 36个字符,客户端设备ID
duration int 1 ~ 50 * 365天,有效期,以天为单位。
csr String 标准CSR请求数据,使用BASE64编码,PEM格式.注意:新创建证书的CN不能与当前没有废弃的子证书的CN相同,但可以与已经废弃的子证书的CN相同。

返回参数CreateSubCertResponse

字段名称 类型 是否必须 说明
certId String 证书唯一ID
downloadUrl String 下载链接,
/v1/pki/clientcert/${certId}/download?userId=xxx&Authorization=xxx, 其中Authorization为已经算好的签名,请求时候用这个链接,加上HttpHeader (Host:pkiiov.baidubce.com)

请求示例

POST /v1/pki/clientcert?clientToken=97ebcae89b8411e898d0529269fb1459 HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T08:41:56Z
content-type: application/json
{
 "groupId" : "7a66182c825b4aaba0aaeed43eff8e01",
 "deviceId" : "IOT_CLIENT_A3",
 "duration" : 200,
 "csr" : "-----BEGIN CERTIFICATE REQUEST-----\nMIIChTCCAW0CAQAwQjEOMAwGA1UECgwFQmFpZHUxCzAJBgNVBAYTAkNOMRUwEwYD\nVQQDDAxjbGllbnQzODQ0NTQxDDAKBgNVBAsMA2FpdDCCASIwDQYJKoZIhvcNAQEB\nBQADggEPADCCAQoCggEBAKR5iHJGFqvSsYggkaOh2ZMUuveyAB0kHfyjdJzIYTUv\n35pZkI6ndI477Ou6gvBq38U3NMre3XAaMPiQvCeOmkdQuwEt5jwb0gnmNzfl/Eim\nt/UkCwli5ertyjuwlcxDMPlEkwn73rjl5KW/yoJTfnToQBSkklj5p08SKabiT9kI\n99AExo0rOghJx0mRk6uVrXjdl5v3msnT3GPKSPkAXH5+y9yRcynW4VYRP6tVT0NG\nXxWGGu6tHBh2inAg9+VFrDS6tWI8IeCkIlYe+ORMu+Ml5RiNlqyFVuWEUjbKsZfv\nbUQnXyxXc52i53JFo49iLTyzW4VTueCruFHC2tfmCNsCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEATN/F37FOgLLINInlPwZHYcRyohVfZP2todwJpel7hxgRzrSoioDm\nSReubQdHz1df0SNTWFKwKAZObCkmByLo/SS/1q++gY8rRVcoo/pPMB+1av1s8n6t\n1ZfewJommKJVB0fUKDZtE7UJyjfJP0ZCbGBqzVJtIDE79FB+hbesbF/QosG3+wLL\nCN9Ps4I6vg5IAx9Rperv1auE347D0b/a/f76yUvVxCSlHauOlrpVTm2eCWjlq7Q6\n8tTCj/dfyco+MzSGBZbBYsIwjnGDeG1gRrbr2geeTONDZBJqKL1isPcU+7D7QjSv\nW1n2TpnkvPksRSOU0M5vGI+oIcuzazwxCQ==\n-----END CERTIFICATE REQUEST-----\n"
}

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 6f4b6fe1-8f8a-49d6-997e-ff4d41106c6c
Content-Type: application/json;charset=UTF-8
{"certId":"52db99ebfd1643b38f80cb8e236a8348","downloadUrl":"https://pkiiov.baidubce.com/v1/pki/clientcert/52db99ebfd1643b38f80cb8e236a8348/download?Authorization=bce-auth-v1%2F790b329ee5194aae868c84ce254d2f63%2F2018-07-12T08%3A42%3A00Z%2F86400%2Fhost%2Fbad78d7dbd75e0efffa686a9f2d1eabc117c47f393d4ebb44f36e043fe669363&userId=b1f91fbe6fe54d2eaf70ef0025f1c3c2"}

删除客户端子证书

方法 api 说明
DELETE /v1/pki/clientcert/{certid} 删除一个客户端子证书。

示例同删除CA根证书

查询客户端子证书1

方法 api 说明
GET /v1/pki/clientcert/{certid} 查询客户端子证书。

返回参数GetSubCertResponse

字段名称 类型 是否必须 说明
rootCertId String 根证书ID
groupId String 分组ID
downloadUrl String 下载链接,
/v1/pki/clientcert/${certId}/download?userId=xxx&Authorization=xxx, 其中Authorization为已经算好的签名,请求时候用这个链接,加上HttpHeader (Host:pkiiov.baidubce.com)

请求示例

GET /v1/pki/clientcert/ca74bfdbaeb240af8f9c90979f4049a4 HTTP/1.1
authorization:{authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T08:54:33Z

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 177c1919-7af3-4f39-986a-e5f3d2737456
Content-Type: application/json;charset=UTF-8
{"rootCertId":"ebeb2d5661d848759a1fc52333e5d2f4","groupId":"c1eb797340034137a6a92053bb4d47e4","downloadUrl":"https://pkiiov.baidubce.com/v1/pki/clientcert/ca74bfdbaeb240af8f9c90979f4049a4/download?Authorization=bce-auth-v1%2F790b329ee5194aae868c84ce254d2f63%2F2018-07-12T08%3A54%3A33Z%2F86400%2Fhost%2F98fbeccf002af3088ff54bd5a1b8701b4d6672f158d9e04fb5ac59b181bba337&userId=b1f91fbe6fe54d2eaf70ef0025f1c3c2"}

查询客户端子证书2

方法 api 说明
GET /v1/pki/clientcert/query?rootCertId={id}&groupId={groupId} 查询客户端子证书信息。groupId为空或不提供则返回分组下所有客户端子证书。groupId和rootCertId必须有一个不为空。

返回参数QueryClientCertResponse

字段名称 类型 是否必须 说明
clientCerts array[String] 客户端子证书ID列表

请求示例

GET /v1/pki/clientcert/query?rootCertId=f557151c77954c9595b62a7e6de3731a&groupId=5a8a10e3cb74482386da344f816549fb HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T09:02:10Z

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 6cd0da78-8c89-4cd2-b04a-c9a55d5dd22b
Content-Type: application/json;charset=UTF-8
{"clientCerts":[]}

客户端子证书变更

方法 api 说明
PUT /v1/pki/clientcert/{certId}/renew?clientToken={clientToken} 变更一个客户端子证书。

请求参数RenewSubCertRequest

字段名称 类型 是否必须 说明
clientToken String 1 ~ 64个字符,用于保证接口幂等性。
newDeviceId String 1 ~ 36个字符,新的设备ID
duration int 1 ~ 50 * 365天,有效期,以天为单位。
csr String 标准CSR请求数据,使用BASE64编码,PEM格式。注意:新创建证书的CN不能与当前没有废弃的子证书的CN相同,但可以与已经废弃的子证书的CN相同。

返回参数RenewSubCertResponse

字段名称 类型 是否必须 说明
downloadUrl String 下载链接,
/v1/pki/clientcert/${certId}/download?userId=xxx&Authorization=xxx, 其中Authorization为已经算好的签名,请求时候用这个链接,加上HttpHeader (Host:pkiiov.baidubce.com)

请求示例

PUT /v1/pki/clientcert/52db99ebfd1643b38f80cb8e236a8348/renew?clientToken=97ebcae89b8411e898d0529269fb1459 HTTP/1.1
authorization:{authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T08:42:00Z
content-type: application/json
{
 "newDeviceId" : "New_Iot_Client_A3",
 "duration" : 700,
 "csr" : "-----BEGIN CERTIFICATE REQUEST-----\nMIIChTCCAW0CAQAwQjEOMAwGA1UECgwFQmFpZHUxCzAJBgNVBAYTAkNOMRUwEwYD\nVQQDDAxjbGllbnQ3MDExMDQxDDAKBgNVBAsMA2FpdDCCASIwDQYJKoZIhvcNAQEB\nBQADggEPADCCAQoCggEBAJOwdp/lwQiawOSKq+C1imDYD3tbFDEeNnnd9FTTfTV4\n4o0hyg0LmzTOsdNtLjTJiMxvQgi+qBjXRiKMHGGe6su2H5senFcB1QFK3Yq6HIAj\ncAloEiuy90Qv5/4fFQZR9CTHSnhtqvu96F74ao5oaakiYfZHjcVbcJ5z0YrLF7lq\n9klTQC7DnB4jB18sD164du7+X0A6w/txFUUjBscrDV9D6IF7YQAxmKheJ0BQHKTG\n9oQ6sX5fWOj+TwKKAypxqt1IYoNY/8wdtyJad9kN7Ug0kN4s93urtRbTabRIO7sB\nXSQdtpT8pRWEhA8VgqrV9MUgKD+W++LSayuSbFOsd1MCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAS8npaJR7JccdSvLi+cFU3NFEuLz0Cyav8Dp4Bij+/WLNcu5yfb3X\ndW6OGxaC50NIpx/VwmYn5oKJQBKrNHIMsZ7hg0j0amZ3u7tBZIV9uaU4jutAiEvW\nFrwkpD6EjWkXGHPIbGLOOjL6GgyGlB903FsgtJKAFpr5BmA3uPOa4fXCeWquvkIj\n/X7LOuXB0QkSdP4VkjFnUBZlFboFLIpJ0mzCx05+x5MMkX9brooSmYHKroWH7xz3\nhQoisQGQ3ZOv3KR1ozzugklVZxphmS9EAyMm26TTREjVlufBWcEnwTd9YYWPOR9i\nN36hRSBHHlNM9xg5/4sz+4YhPKha9Wlrpg==\n-----END CERTIFICATE REQUEST-----\n"
}

返回示例

HTTP/1.1 200 OK
x-bce-request-id: b4308e6b-2f3f-4d22-a525-a08654ac1cdc
Content-Type: application/json;charset=UTF-8
{"downloadUrl":"https://pkiiov.baidubce.com/v1/pki/clientcert/52db99ebfd1643b38f80cb8e236a8348/download?Authorization=bce-auth-v1%2F790b329ee5194aae868c84ce254d2f63%2F2018-07-12T08%3A42%3A05Z%2F86400%2Fhost%2F13eb15bfe5a1f043636dcd545e9fcf36b5f41b6890f1a20b63a48f5e0eb1a6d4&userId=b1f91fbe6fe54d2eaf70ef0025f1c3c2"}

下载接口

根证书下载

方法 api 说明
GET /v1/pki/rootcert/{certId}/download?userId=xx&Auhtorization=x 下载根证书,地址为创建或查询时候返回的url。请求头:Host:pkiiov.baidubce.com, Authorization:x

返回:

content-type 内容 文件名
application/x-pem-file pem格式的证书内容 {certId}.pem

服务器端子证书下载

方法 api 说明
GET /v1/pki/servercert/{certId}/download? userId=xx&Auhtorization=x 服务器端子证书下载。地址为创建或查询时候返回的url。请求头:Host:pkiiov.baidubce.com, Authorization:x

返回:

content-type 内容 文件名
application/x-pem-file pem格式的证书内容 {certId}.pem

客户端子证书下载

方法 api 说明
GET /v1/pki/clientcert/{certId}/download? userId=xx&Auhtorization=x 客户端子证书下载。地址为创建或查询时候返回的url。请求头:Host:pkiiov.baidubce.com, Authorization:x

返回:

content-type 内容 文件名
application/x-pem-file pem格式的证书内容 {certId}.pem

批量接口

批量创建客户端子证书

方法 api 说明
POST /v1/pki/clientcert/job?clientToken={clientToken} 签发一批客户端子证书。

请求参数BatchCreateCertRequest

字段名称 类型 是否必须 说明
clientToken String 1 ~ 64个字符,用于保证接口幂等性。
rootCertId String 根证书ID
groupId String 分组ID
deviceIds array[String] 设备ID编号,最多支持1000个设备批量创建。每个设备id为1 ~ 36个字符
duration int 1 ~ 50 * 365天,有效期,以天为单位。
csrs 多个文件进过zip压缩后的包 标准CSR请求数据,使用BASE64编码,PEM格式,zip包. deviceIds与csrs包中的文件列表必须一一对应。这个字段是zip包的二进制流经过base64 encode后的String。注意:新创建证书的CN不能与当前没有废弃的子证书的CN相同,但可以与已经废弃的子证书的CN相同。

返回参数BatchCreateCertResponse

字段名称 类型 是否必须 说明
jobId String job唯一标志。

请求示例

POST /v1/pki/clientcert/job?clientToken=97ebcae89b8411e898d0529269fb1459 HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T09:41:16Z
content-type: application/json
{
 "groupId" : "7aa82ddbf2dd4271945bbe1007404b92",
 "deviceIds" : [ "3b03e0", "3b03e1" ],
 "duration" : 500,
 "csrs" : "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"
}

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 8ee9b35e-2b64-4107-94bc-36f9cc3c98ec
Content-Type: application/json;charset=UTF-8
{"jobId":"60a644a342e946668f35be6c6fc9535d"}

查询批量创建子证书作业

方法 api 说明
GET /v1/pki/clientcert/job/{jobid} 查询批量创建客户端子证书作业

返回参数GetBatchJobResponse

字段名称 类型 是否必须 说明
jobStatus String Succeed, PartialSucceed,Processing。当状态为Succeed和PartialSucceed的时候有字段:certCount,certIds,downloadUrl。当PartialSucceed的时候,有message字段。
message String 提供部分失败的原因。如果failed,会直接抛错误,message不在这里展示。
certCount int 成功签发的证书数量.
certIds array[CertToDevice] 成功签发的设备ID和证书ID组合列表。参考结构1.
downloadUrl String /v1/pki/clientcert/job/${jobId}/download?userId=xxx&Authorization=xxx, 其中Authorization为已经算好的签名,请求时候用这个链接,加上HttpHeader (Host:pkiiov.baidubce.com)

CertToDevice结构体:

字段名称 类型 是否必须 说明
certId String 证书ID
deviceId String 设备ID

请求示例

GET /v1/pki/clientcert/job/60a644a342e946668f35be6c6fc9535d HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T09:41:17Z
返回示例
HTTP/1.1 200 OK
x-bce-request-id: c8f6a649-a3cb-43b3-9335-eb1289d03ed7
Content-Type: application/json;charset=UTF-8
{"jobStatus":"Processing","message":"","certCount":0,"certIds":[],"downloadUrl":""}

子证书批量下载

方法 api 说明
GET /v1/pki/clientcert/job/{jobId}/download?userId=xxx&Authorization=xxx 客户端子证书下载。地址为创建或查询时候返回的url。请求头:Host:pkiiov.baidubce.com, Authorization:x

返回:

content-type 内容 证书名
application/zip 证书压缩的zip包 deviceId

证书状态查询

证书状态在线查询

方法 api 说明
PUT /v1/pki/cert/getstatus 在线查询证书状态。无需百度智能云签名。

请求参数GetCertStatusRequest

字段名称 类型 是否必须 说明
issuerDN String 签发者DN,在证书中可以找到,如 CN=Test_Root_01,OU=TestC53,C=CH
certficateSN String 证书SN,如14BA4160676D31AF

返回参数GetCertStatusResponse

字段名称 类型 是否必须 说明
statusCode int 状态码,
0 (证书没有作废)
1 (证书已经作废)
2 (证书不存在)
3 (没有这个CA服务)
4 (发生了其他错误)
status String 状态

请求示例

PUT /v1/pki/cert/getstatus HTTP/1.1
authorization:{authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T09:56:30Z
content-type: application/json
{
 "issuerDN" : "emailAddress=zhangsan@baidu.com, CN=root583878, OU=ait, O=ABC corp, C=CN",
 "certificateSN" : "40e9d635083fadb0"
}

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 61f4d7a1-bf95-4f8c-b649-6ff2682a4cfa
Content-Type: application/json;charset=UTF-8
{"statusCode":0,"status":"Not revoked"}

crl下载

方法 api 说明
GET /v1/pki/crl?cmd=crl&format=PEM&issuer={issuerDN} crl下载,无需百度智能云签名。根证书中有url,获取根证书状态也可以拿到crl。

请求参数

字段名称 类型 是否必须 说明
issuerDN String 签发者DN,在证书中可以找到,如 CN=Test_Root_01,OU=TestC53,C=CH

返回:

pem格式的crl文件。

请求示例

GET /v1/pki/crl?cmd=crl&format=PEM&issuer=emailAddress%3Dzhangsan%40baidu.com%2C%20CN%3Droot892557%2C%20OU%3Dait%2C%20O%3DABC%20corp%2C%20C%3DCN HTTP/1.1
authorization: {authorization}
host: pkiiov.baidubce.com
x-bce-date: 2018-07-12T11:41:50Z

返回示例

HTTP/1.1 200 OK
x-bce-request-id: 7d4a31d2-e757-4f94-9cea-b1ac9694cc2a
Content-Disposition: form-data; name="attachment"; filename="crl.pem"
Content-Type: application/x-pem-file;charset=UTF-8
-----BEGIN X509 CRL-----
MIIC4zCCAcsCAQEwDQYJKoZIhvcNAQELBQAwaTEkMCIGCSqGSIb3DQEJARYVd2Fu
amlhbmd5YW5AYmFpZHUuY29tMRMwEQYDVQQDDApyb290ODkyNTU3MQwwCgYDVQQL
DANhaXQxETAPBgNVBAoMCEFCQyBjb3JwMQswCQYDVQQGEwJDThcNMTgwNzExMjMx
NjMyWhcNMTgwNzEyMjMxNjMyWjCB/DAoAggwZMLtUzVKwxcNMTgwNzExMDc0NjM0
WjANMAsGA1UdFQQECgIAgDAoAghKjYmO4IgsLRcNMTgwNzExMDc0NjQxWjANMAsG
A1UdFQQECgIAgDAoAggCSElxV6LvoBcNMTgwNzExMDc0NjQ5WjANMAsGA1UdFQQE
CgIAgDAoAgh9QoXBkAcZhBcNMTgwNzExMDgyNTE1WjANMAsGA1UdFQQECgIAgDAo
AghCN45GTjId/hcNMTgwNzExMDgyNTIyWjANMAsGA1UdFQQECgIAgDAoAggrlXkR
OlmHLBcNMTgwNzExMDgyNTI4WjANMAsGA1UdFQQECgIAgKAvMC0wHwYDVR0jBBgw
FoAU2A/88qbIh/KBpXcnRblENZkLgccwCgYDVR0UBAMCAQMwDQYJKoZIhvcNAQEL
BQADggEBAEaP068W9qoG5MVg0l63l5ST5IKQVC6Yomkv7Y3IXRlH5nPFbN8QoxS9
+7MdOZmhJhbBuNoi4Z/lxqQ+4dbTi7gaxy0Y4w8ElPNtO7Am0jRBcGcTUODUNrnx
ZBlFZUpLhY1gxE589OJVID4fD/kfyFbKHi9swfa11V+S7osALPeUrqvCEJUPfWxp
5MctDYyejMrxOO6NHYVBobgRFUgS+TWDqybR1JJnkXbQrr/HTsQKkvT3ERrqiKZw
nAVB58ftjzQKZZw2Ud+sL7uTst/kBwtHBVKuYc9/FhcvziGWkFph0ClEQ+dQEKGV
P6MGo+P8/8XpcRw6zvtLSflFLQzkBXQ=
-----END X509 CRL-----

ocsp查询

在线证书状态协议(Online Certificate Status Protocol)是一个用于获取X.509数字证书撤销状态的网际协议,可以在线实时获取证书状态。具体协议可查看标准ocsp协议。

目前PKI系统支持通过get方法进行ocsp查询。

方法 api 说明
GET /v1/pki/ocsp/{OCSPRequestData} ocsp查询接口

请求参数:标准ocsp request

GET {url}/{url-encoding of base-64 encoding of the DER encoding of the OCSPRequest}

其中,OCSPRequestData生成方式为:
对标准ocsp请求OCSPRequest进行DER编码,然后对编码结果进行base64编码,再对编码结果进行url编码即可。

返回参数:标准ocsp response

An HTTP-based OCSP response is composed of the appropriate HTTP
headers, followed by the binary value of the DER encoding of the
OCSPResponse.  The Content-Type header has the value 
"application/ocsp-response".

PKI系统将返回标准的ocsp respose,即返回一个Content-Type header 为 "application/ocsp-response",body为DER编码的OCSPResponse 二进制数据的http响应。