接口说明
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响应。