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-6847ff54f2b4
3.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-6847ff54f2b4
3.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以便后续分析。