基本概念

本文档用于定义百度智能云天工PKI系统API接口。用户通过PKI系统创建,查询,更改及删除证书,用于服务器端和客户端的双向认证。

名称解释

名词 含义
根证书(root certifcate) 具有签发子证书的功能。每个根证书之间是独立的。用户需要先申请根证书,然后才能在根证书下面创建子证书。
服务器端子证书(server cert) 根证书签发的子证书,适用于服务器端,包含了一个address字段。
客户端子证书(client cert) 根证书签发的子证书,适用于客户端。
分组(group) 子证书分组,一个分组中可包含服务器端子证书和客户端子证书。
证书签发请求(csr) 创建子证书需要提供的csr文件,这个文件是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时生成的。 天工pki系统支持标准CSR请求数据(使用BASE64编码,PEM格式)。
过期列表(crl) 过期作废列表是指根证书签发的子证书中,过期或者作废的子证书列表。认证程序可以向根证书的crl查询当前认证证书是否在过期作废列表中。
证书ID(certid) 证书唯一ID。天工pki系统通过用户id和证书id来唯一确定一个证书。
base64编码 base64:是一种基于64个可打印字符来表示二进制数据的表示方法,相关内容可以查看Base64算法介绍
clientToken clientToken用来保证创建的幂等性,幂等性的意思是无论同一个请求被重复发送多次,其结果都和发送一次一样。这个字段是为了避免由于网络等问题导致客户端没收到响应连接就中断,然后客户端重试导致重复创建的问题。PKI系统中,所以的创建和更新接口都需要在请求中附加该字段,具体用法详见下文的API。

签名认证

PKI API会对每个访问的请求进行身份认证,以保障用户的安全。安全认证采用Access Key与请求签名机制。Access Key由Access Key ID和Secret Access Key组成,均为字符串,由百度智能云官方颁发给用户。其中Access Key ID用于标识用户身份,Access Key Secret 是用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密。

对于每个HTTP请求,用户需要使用下文所描述的方式生成一个签名字符串,并将认证字符串放在HTTP请求的Authorization头域里。

签名字符串格式

bce-auth-v{version}/{accessKeyId}/{timestamp}/{expireTime}/{signedHeaders}/{signature}

其中:

  • version是正整数,目前取值为1。
  • timestamp是生成签名时的时间。时间格式符合通用约定
  • expireTime表示签名有效期限,单位为秒,从timestamp所指定的时间开始计算。
  • signedHeaders是签名算法中涉及到的头域列表。头域名字之间用分号(;)分隔,如host;x-bce-date。列表按照字典序排列。当signedHeaders为空时表示取默认值。
  • signature是256位签名的十六进制表示,由64个小写字母组成,生成方式由如下签名生成算法给出。

签名生成算法

有关签名生成算法的具体介绍,请参看鉴权认证机制

区域

Region代表着一个独立的地域,是开放云中的重要概念,请参考区域选择说明。开放云中的服务除了少数如账号服务全局有效之外,绝大部分服务都是区域间隔离的。每个区域的服务独立部署互不影响。服务间共享数据需要通过显式拷贝完成。在API中引用区域必须使用其ID。目前PKI是全局服务,不区分区域,目前支持http和https调用。

区域 域名 协议
全局 pkiiov.baidubce.com http和https