api参考 -奇异果体育app竞彩官网下载
更新时间:2021-03-26
1 简介
证书管理模块主要用于管理用户的ssl证书,方便用户录入以及查看ssl证书。
本文档适用于开发人员,主要提供接口为创建证书,查看证书列表等。
1.1 名词解释
| 名词 | 说明 |
|---|---|
| certid | 证书id, 全局唯一 |
| certname | 证书自定义名称 |
| certserverdata | 服务器证书 |
| certprivatedata | 证书私钥 |
| certlinkdata | 证书链数据 |
| certcommonname | 证书通用名称 |
| certdnsnames | 证书包含的域名 |
| certstarttime | 证书生效时间 |
| certstoptime | 证书到期时间 |
| uploadpublickey | 上传证书公钥,用来加密数据。之后需要使用对应的私钥机密数据 |
| status | 证书使用状态,unused表示未使用,in_use表示使用中 |
| expired | 证书是否过期,true表示已经过期 |
| certtype | 证书类型,1表示服务端证书,私钥为必填项;2表示客户端证书,私钥为非必填项 |
1.2 格式规范
| 参数 | 说明 |
|---|---|
| certid | 格式:“cert-xxxxxxxxxxxx”(12位随机字符串),例子:“cert-5atue8m3sxsv”。 |
2.调用方式
证书服务 api以restful api的形式提供。
2.1 请求结构
2.1.1 通信协议
目前支持http,暂不支持https。
2.1.2 请求方法
不同类型的api使用不同的请求方法,如下所示:
| api类型 | 请求方法 |
|---|---|
| 读取资源 | get |
| 修改资源 | put |
| 批量查询/创建资源 | post |
| 删除资源 | delete |
| 获取资源状态 | head |
2.1.3 字符编码
请求和返回结果都使用utf-8编码。
2.2 公共参数
2.2.1 公共请求头
| 头域 | 是否必须 | 说明 |
|---|---|---|
| authorization | 必须 | 见认证机制 |
| content-type | 必须 | 应该总是application/json; charset=utf-8 |
| x-bce-date | 必须 | 请求时间,格式见[时间格式](#6.2 时间格式)。服务器会比较该时间与当前服务器时间,如果两者相差超过30分钟,则返回错误 |
2.2.2 公共响应头
| 头域 | 说明 |
|---|---|
| content-type | 总是application/json; charset=utf-8 |
| x-bce-request-id | 对应请求的[requestid](#6.3 requestid) |
2.2.3 认证机制
3.api列表
3.1 创建证书
| 方法 | api | 说明 |
|---|---|---|
| post | /v1/certificate | 创建证书 |
请求参数
| 参数名称 | 参数类型 | 是否必须 | 说明 |
|---|---|---|---|
| certname | string | 必须 | 证书的名称。长度限制为1-65个字符,以字母开头,只允许包含字母、数字、’-‘、’/’、’.’、’’,java正则表达式` ^[a-za-z]a-za-z0-9\-/\.]{2,64}$` |
| certserverdata | string | 必须 | 服务器证书的数据内容 (base64编码) |
| certprivatedata | string | 必须 | 证书的私钥数据内容 (base64编码) |
| certlinkdata | string | 可选 | 证书链数据内容 (base64编码) |
| certtype | integer | 可选 | 证书类型,非必填,默认为1 |
返回参数
返回值为一个certificate对象(只包含certid和certname)。
可能异常
| 异常code | 说明 |
|---|---|
| certexceedlimit (409) | 超过用户最大证书数 |
| unmatchedpairparameterinvalidexception (400) | 证书有效时间不包含当前时间 |
| privatekeyparameterinvalid (400) | 私钥解析异常 |
| certificateparameterinvalid (400) | 证书解析异常 |
| certchainparameterinvalid (400) | 证书链解析异常 |
| unmatchedpairparameterinvalid (400) | 公钥私钥不匹配 |
请求示例
post /v1/certificate http/1.1
host: certificate.baidubce.com
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2014-06-01t23:00:10z
{
"certname": "testcert",
"certserverdata": "-----begin certificate-----\ngbs4mwchjjzl0im3b trad...\n-----end certificate-----",
"certprivatedata": "-----begin rsa private key-----\n6jcfaxrrh7aocg0jhqjgn/by0u2jwg/xfe...\n-----end rsa private key-----"
}返回示例
http/1.1 200 ok
content-type: application/json; charset=utf-8
x-bce-request-id: 9ebc57ed-1ff5-480f-b5b1-6847ff54f2b4
{
"certid": "cert-5atue8m3sxsv",
"certname": "testcert"
}3.2 修改证书名称
| 方法 | api | 说明 |
|---|---|---|
| put | /v1/certificate/{certid}?certname | 修改证书名称 |
可能异常
| 异常code | 说明 |
|---|---|
| accessdeniedexception | 无权限访问 |
| resourcenotfoundexception | 证书不存在 |
请求参数
| 参数名称 | 参数类型 | 是否必须 | 说明 |
|---|---|---|---|
| certname | string | 必须 | 证书名称 |
请求示例
put /v1/certificate/cert-5atue8m3sxsv?certname http/1.1
host: certificate.baidubce.com
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2014-06-01t23:00:10z
{
"certname": "testcert"
}返回示例
http/1.1 200 ok
content-type: application/json; charset=utf-8
x-bce-request-id: 9ebc57ed-1ff5-480f-b5b1-6847ff54f2b43.3 根据证书名查询证书
| 方法 | api | 说明 |
|---|---|---|
| get | /v1/certificate?certname={certname} | 根据证书名查询用户的证书 |
请求参数
| 参数名称 | 参数类型 | 是否必须 | 说明 |
|---|---|---|---|
| certname | string | 必须 | 证书名称 |
返回参数
| 参数名称 | 参数类型 | 说明 |
|---|---|---|
| certs | list |
由certificate组成的数组 |
请求示例
get /v1/certificate?certname=testcert http/1.1
host: certificate.baidubce.com
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2014-06-01t23:00:10z返回示例
http/1.1 200 ok
content-type: application/json; charset=utf-8
x-bce-request-id: 9ebc57ed-1ff5-480f-b5b1-6847ff54f2b4
{
"certs": [
{
"certid": "cert-5atue8m3sxsv",
"certname": "testcert",
"certcommonname": "httpstest.baidu.com",
"certstarttime": "2014-06-01t23:00:10z",
"certstoptime": "2015-06-01t23:00:10z",
"certcreatetime": "2014-06-01t23:00:10z",
"certupdatetime": "2014-06-01t23:00:10z"
}
]
}3.4 查看证书列表
| 方法 | api | 说明 |
|---|---|---|
| get | /v1/certificate | 查看用户的证书列表 |
返回参数
| 参数名称 | 参数类型 | 说明 |
|---|---|---|
| certs | list |
由certificate组成的数组 |
请求示例
get /v1/certificate http/1.1
host: certificate.baidubce.com
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2014-06-01t23:00:10z返回示例
http/1.1 200 ok
content-type: application/json; charset=utf-8
x-bce-request-id: 9ebc57ed-1ff5-480f-b5b1-6847ff54f2b4
{
"certs": [
{
"certid": "cert-5atue8m3sxsv",
"certname": "testcert",
"certcommonname": "httpstest.baidu.com",
"certstarttime": "2014-06-01t23:00:10z",
"certstoptime": "2015-06-01t23:00:10z",
"certcreatetime": "2014-06-01t23:00:10z",
"certupdatetime": "2014-06-01t23:00:10z"
},
{
"certid": "cert-xsdfwerdty67",
"certname": "testcertfail",
"certcommonname": "httpstestfail.baidu.com",
"certstarttime": "2014-06-01t23:00:10z",
"certstoptime": "2015-06-01t23:00:10z",
"certcreatetime": "2014-06-01t23:00:10z",
"certupdatetime": "2014-06-01t23:00:10z"
}
]
}3.5 查看证书列表详情
| 方法 | api | 说明 |
|---|---|---|
| get | /v1/certificate/detail | 查看用户的证书列表详情,相比普通的查询证书列表,证书中多了证书域名和使用状态信息 |
返回参数
| 参数名称 | 参数类型 | 说明 |
|---|---|---|
| certs | list |
由certificatedetail组成的数组 |
certificatedetail参数列表
| 参数名称 | 参数类型 | 说明 |
|---|---|---|
| certid | string | 证书id |
| certname | string | 证书名称 |
| certcommonname | string | 证书通用名称 |
| certstarttime | datetime | 证书生效时间 |
| certstoptime | datetime | 证书到期时间 |
| certcreatetime | datetime | 证书创建时间 |
| certupdatetime | datetime | 证书更新时间 |
| certtype | integer | 证书类型 |
| certdnsnames | string | 证书包含的域名列表,用英文逗号隔开 |
| status | string | 证书使用状态,unused表示未使用,in_use表示使用中 |
| expired | boolean | 证书是否过期 |
请求示例
get /v1/certificate/detail http/1.1
host: certificate.baidubce.com
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2014-06-01t23:00:10z返回示例
http/1.1 200 ok
content-type: application/json; charset=utf-8
x-bce-request-id: 9ebc57ed-1ff5-480f-b5b1-6847ff54f2b4
{
"certs": [
{
"certid": "cert-5atue8m3sxsv",
"certname": "testcert",
"certcommonname": "httpstest.baidu.com",
"certstarttime": "2014-06-01t23:00:10z",
"certstoptime": "2015-06-01t23:00:10z",
"certcreatetime": "2014-06-01t23:00:10z",
"certupdatetime": "2014-06-01t23:00:10z",
"certdnsnames": "baidu.com",
"status": "in_use",
"expired": false
},
{
"certid": "cert-xsdfwerdty67",
"certname": "testcertfail",
"certcommonname": "httpstestfail.baidu.com",
"certstarttime": "2014-06-01t23:00:10z",
"certstoptime": "2015-06-01t23:00:10z",
"certcreatetime": "2014-06-01t23:00:10z",
"certupdatetime": "2014-06-01t23:00:10z",
"certdnsnames": "baidu.com",
"status": "unused",
"expired": true
}
]
}3.6 获取证书信息(无证书公钥私钥)
| 方法 | api | 说明 |
|---|---|---|
| get | /v1/certificate/{certid} | 获取证书id为{certid}的应用信息 |
返回参数
返回值为一个certificate对象
certificate参数列表
| 参数名称 | 参数类型 | 说明 |
|---|---|---|
| certid | string | 证书id |
| certname | string | 证书名称 |
| certcommonname | string | 证书通用名称 |
| certstarttime | datetime | 证书生效时间 |
| certstoptime | datetime | 证书到期时间 |
| certcreatetime | datetime | 证书创建时间 |
| certupdatetime | datetime | 证书更新时间 |
| certtype | integer | 证书类型 |
可能异常
| 异常code | 说明 |
|---|---|
| accessdeniedexception | 无权限访问 |
| resourcenotfoundexception | 证书不存在 |
请求示例
get /v1/certificate/cert-5atue8m3sxsv http/1.1
host: certificate.baidubce.com
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2014-06-01t23:00:10z返回示例
http/1.1 200 ok
content-type: application/json; charset=utf-8
x-bce-request-id: 9ebc57ed-1ff5-480f-b5b1-6847ff54f2b4
{
"certid": "cert-5atue8m3sxsv",
"certname": "testcert",
"certcommonname": "httpstest.baidu.com",
"certstarttime": "2014-06-01t23:00:10z",
"certstoptime": "2015-06-01t23:00:10z",
"certcreatetime": "2014-06-01t23:00:10z",
"certupdatetime": "2014-06-01t23:00:10z",
"certtype": 1
}3.7 删除证书
| 方法 | api | 说明 |
|---|---|---|
| delete | /v1/certificate/{certid} | 删除证书 |
可能异常
| 异常code | 说明 |
|---|---|
| operationnotallowedexception | 证书使用中 |
| accessdeniedexception | 无权限访问 |
| resourcenotfoundexception | 证书不存在 |
请求示例
delete /v1/certificate/cert-5atue8m3sxsv http/1.1
host: certificate.baidubce.com
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2014-06-01t23:00:10z返回示例
http/1.1 200 ok
content-type: application/json; charset=utf-8
x-bce-request-id: 9ebc57ed-1ff5-480f-b5b1-6847ff54f2b43.8 替换证书(id不变)
| 方法 | api | 说明 |
|---|---|---|
| put | /v1/certificate/{certid}?certdata | 替换过期且不在使用中的证书 |
请求参数
| 参数名称 | 参数类型 | 是否必须 | 说明 |
|---|---|---|---|
| certname | string | 必须 | 证书的名称。长度限制为1-65个字符,以字母开头,只允许包含字母、数字、’-‘、’/’、’.’、’’,java正则表达式` ^[a-za-z]a-za-z0-9\-/\.]{2,64}$` |
| certserverdata | string | 必须 | 服务器证书的数据内容 (base64编码) |
| certprivatedata | string | 必须 | 证书的私钥数据内容 (base64编码) |
| certlinkdata | string | 可选 | 证书链数据内容 (base64编码) |
| certtype | integer | 可选 | 证书类型,非必填,默认为1 |
可能异常
| 异常code | 说明 |
|---|---|
| operationnotallowedexception(409) | 证书使用中或者证书 |
| accessdeniedexception(403) | 证书非本用户或子用户无该证书运维权限 |
| resourcenotfoundexception(404) | 无证书 |
| certexceedlimit (409) | 超过用户最大证书数 |
| unmatchedpairparameterinvalidexception (400) | 证书有效时间不包含当前时间 |
| privatekeyparameterinvalid (400) | 私钥解析异常 |
| certificateparameterinvalid (400) | 证书解析异常 |
| certchainparameterinvalid (400) | 证书链解析异常 |
| unmatchedpairparameterinvalid (400) | 公钥私钥不匹配 |
请求示例
put /v1/certificate/cert-5atue8m3sxsv?certdata http/1.1
host: certificate.baidubce.com
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2014-06-01t23:00:10z
{
"certname": "testcert",
"certserverdata": "-----begin certificate-----\ngbs4mwchjjzl0im3b trad...\n-----end certificate-----",
"certprivatedata": "-----begin rsa private key-----\n6jcfaxrrh7aocg0jhqjgn/by0u2jwg/xfe...\n-----end rsa private key-----",
} 返回示例
http/1.1 200 ok
content-type: application/json; charset=utf-8
x-bce-request-id: 9ebc57ed-1ff5-480f-b5b1-6847ff54f2b4 3.9 获取证书数据(包含私钥)
| 方法 | api | 说明 |
|---|---|---|
| get | /v1/certificate/{certid}/rawdata | 获取证书id为{certid}的应用信息 |
返回参数
返回值为包含证书私钥的certificate对象
certificate参数列表
| 参数名称 | 参数类型 | 说明 |
|---|---|---|
| certid | string | 证书id |
| certname | string | 证书名称 |
| certserverdata | string | 公钥证书 |
| certprivatekey | string | 证书私钥 |
| certlinkdata | string | 证书链,包含多个证书,不包括服务器证书 |
| certtype | integer | 证书类型 |
可能异常
| 异常code | 说明 |
|---|---|
| accessdeniedexception | 无权限访问 |
| resourcenotfoundexception | 证书不存在 |
请求示例
get /v1/certificate/cert-5atue8m3sxsv/rawdata http/1.1
host: certificate.baidubce.com
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2014-06-01t23:00:10z返回示例
http/1.1 200 ok
content-type: application/json; charset=utf-8
x-bce-request-id: 9ebc57ed-1ff5-480f-b5b1-6847ff54f2b4
{
"certid": "cert-5atue8m3sxsv",
"certname": "testcert",
"certserverdata": "-----begin certificate-----\n......data.......\n-----end certificate-----",
"certprivatekey": "-----begin rsa private key-----......data......\n-----end rsa private key-----",
"certlinkdata": "-----begin certificate-----\n......data2.......\n-----end certificate-----\n-----begin certificate-----\n......data3.......\n-----end certificate-----",
"certtype": 1
}6 附表
6.1 错误状态码
| code | message | http status code | 说明 |
|---|---|---|---|
| operationnotallowed | resource status conflict. | 409 conflict | 资源状态冲突,不能执行请求操作 |
| resourcenotfound | resource not found. | 404 not_found | 请求资源不存在 |
| parametersnotchanged | parameters not changed. | 403 forbidden | 请求参数未发生变化 |
| resourcenameduplicated | resource name duplicated. | 409 conflict | 资源名称重复 |
| parametersinvalid | parameters invalid. | 400 bad request | 请求参数不合法 |
| accessdenied | access denied. | 403 forbidden | 无权限访问 |
6.2 时间格式
日期与时间的表示有多种方式。为统一起见,除非是约定俗成或者有相应规范的,凡需要日期时间表示的地方一律采用utc时间,遵循,并做以下约束:
- 表示日期一律采用
yyyy-mm-dd方式,例如2014-06-01表示2014年6月1日 - 表示时间一律采用
hh:mm:ss方式,并在最后加一个大写字母z表示utc时间。例如23:00:10z表示utc时间23点0分10秒。 - 凡涉及日期和时间合并表示时,在两者中间加大写字母t,例如
2014-06-01t23:00:10z表示utc时间2014年6月1日23点0分10秒。
6.3 requestid
所有请求都应该唯一地对应一个id,用于标识该请求。requestid可用于问题定位、性能分析等等多个场景。所有的日志都应该带有requestid以便后续分析。