CreateClientCertificateWithCsr - 基于自定义的CSR签发单个客户端证书

更新时间:
复制 MD 格式

基于自定义的CSR签发单个客户端证书

接口说明

调用本接口前,您必须已经调用 CreateRootCACertificate 创建了根 CA 证书,并且调用 CreateSubCACertificate 创建了子 CA 证书。只有子 CA 证书才能签发客户端证书。

QPS 限制

本接口的单用户 QPS 限制为 10 次/秒。超过限制,API 调用将会被限流,这可能影响您的业务,请合理调用。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

yundun-cert:CreateClientCertificateWithCsr

create

*全部资源

*

无 无

请求参数

名称

类型

必填

描述

示例值

Csr

string

否

CSR 内容。您可以通过 OpenSSL 工具或者 Keytool 工具生成 CSR。更多信息,请参见如何制作 CSR 文件。 您也可以通过 SSL 证书控制台创建 CSR。更多信息,请参见创建 CSR。

-----BEGIN CERTIFICATE REQUEST----- ...... -----END CERTIFICATE REQUEST-----

SanType

integer

否

客户端证书的扩展信息 SAN(Subject Alternative Name)的类型。取值:

  • 0:otherName (0):其他名称

  • 1:rfc822Name (1):RFC822 名称(通常指电子邮件地址)

  • 2:dNSName (2):DNS 名称(域名)

  • 3:x400Address (3):X.400 地址(一种早期的电子邮件标准地址)

  • 4:directoryName (4):目录名称(通常指 X.500 专有名称 DN)

  • 5:ediPartyName (5):EDI 参与方名称(电子数据交换参与方名称)

  • 6:uniformResourceIdentifier (6):统一资源标识符(URI:Uniform Resource Identifier)

  • 7:iPAddress (7):IP 地址

  • 8:registeredID (8):已注册的 ID(对象标识符 OID)

2

SanValue

string

否

客户端证书的具体扩展信息。支持输入多个扩展信息,如果您需要输入多个扩展信息,请用半角逗号(,)将其隔开。

  1. otherName (0):其他名称

  • 示例值:1.3.6.1.4.1.311.20.2.3 (OID) + user@domain.com (UPN 用户主体名称)

  • 说明:这是一种自定义的扩展类型,通常由特定的 OID(对象标识符)和对应的值组成。在 Windows 环境中,常用来存放 UPN(用户主体名称),比如用于智能卡登录的 zhangsan@company.com。

  1. rfc822Name (1):RFC822 名称(电子邮件地址)

  • 示例值:admin@example.com,support@company.cn

  • 说明:遵循 RFC 822 标准的互联网电子邮箱地址。常用于 S/MIME 邮件签名和加密证书中,用来标识邮件的发送者或接收者。

  • dNSName (2):DNS 名称(域名)

  • 示例值:www.example.com,api.test.cn,*.mydomain.com(通配符域名)

  • 说明:这是目前 HTTPS 网站 SSL/TLS 证书中最常用的类型。一个证书可以通过 SAN 扩展包含多个 DNS 名称,从而实现一张证书保护多个子域名或完全不同的域名。

  1. x400Address (3):X.400 地址

  • 示例值:G=Zhang; S=San; O=Company; PRMD=IT; ADMD=Telecom; C=CN

  • 说明:这是一种较早期的电子邮件系统地址标准,结构非常复杂,包含了国家(C)、管理域(ADMD)、组织(O)、姓(S)、名(G)等属性。在现代互联网 HTTPS 证书中极少使用,多见于一些传统的欧洲政企或军事通信系统。

  1. directoryName (4):目录名称

  • 示例值:CN=IT Department, OU=Tech, O=Company Ltd, L=Beijing, ST=Beijing, C=CN

  • 说明:即标准的 X.500 专有名称(DN)。它通常用来在证书中明确标识某个组织、部门或实体的完整层级信息,常见于企业内部的根证书或特定的政务数字证书中。

  1. ediPartyName (5):EDI 参与方名称

  • 示例值:nameAssigner=GlobalTradeOrg, partyName=SupplierA

  • 说明:专用于电子数据交换(EDI)领域。用来标识在商业报文交换(如订单、发票传输)中的特定参与方名称,通常包含分配名称的机构(nameAssigner)和参与方本身的名称(partyName)。

  1. uniformResourceIdentifier (6):统一资源标识符(URI)

  • 示例值:http://www.example.com/verify,https://api.test.cn/status

  • 说明:标准的 URL 格式,必须包含协议头(如 http:// 或 https://)。它可以指向一个具体的网络资源地址。

  1. iPAddress (7):IP 地址

  • 示例值:192.168.1.100(IPv4)、2001:0db8:85a3::8a2e:0370:7334(IPv6)

  • 说明:直接绑定服务器的 IP 地址。常用于没有域名的内部系统、API 接口服务器,或者只能通过公网 IP 访问的特定业务(注意:公网 IP 证书通常需要严格的组织验证 OV)。

  1. registeredID (8):已注册的 ID(对象标识符 OID)

  • 示例值:1.2.3.4.55.6.5.99、2.5.29.17

  • 说明:由国际标准组织分配的唯一数字标识符。在证书中较少作为主体名称直接使用,更多是作为系统内部的一种唯一身份识别码或策略标识。

somebody@example.com

Organization

string

否

机构名称,默认:Alibaba Inc。

Alibaba Inc

OrganizationUnit

string

否

部门名称,默认:Aliyun CDN。

Security

Country

string

否

国家代码,例如 CN、US。

CN

CommonName

string

否

设置证书的公用名。支持使用中文、英文字符等。

说明

如果您设置了 CsrPemString 参数,则 CommonName 参数取值以 CsrPemString 参数中的对应信息为准。

aliyundoc.com

State

string

否

设置证书组织机构所在省份、直辖市或自治区的名称。支持使用中文、英文字符等。默认为签发该证书的子 CA 证书组织机构所在省份、直辖市或自治区的名称。

Zhejiang

Locality

string

否

设置证书组织机构所在城市的名称。支持使用中文、英文字符等。 默认为签发该证书的子 CA 证书的组织机构所在城市的名称。

Hangzhou

Algorithm

string

否

客户端证书的密钥算法。密钥算法使用<加密算法>_<密钥长度>格式表示。取值:

  • RSA_1024:对应签名算法为 Sha256WithRSA。

  • RSA_2048:对应签名算法为 Sha256WithRSA。

  • RSA_4096:对应签名算法为 Sha256WithRSA。

  • ECC_256:对应签名算法为 Sha256WithECDSA。

  • ECC_384:对应签名算法为 Sha256WithECDSA。

  • ECC_512:对应签名算法为 Sha256WithECDSA。

  • SM2_256:对应签名算法为 SM3WithSM2。

客户端证书的加密算法必须与子 CA 证书一致,密钥长度可以不一致。例如:子 CA 证书的密钥算法为 RSA_2048,则客户端证书的密钥算法必须是 RSA_1024、RSA_2048、RSA_4096 中的一种。

说明

您可以调用 DescribeCACertificate 查询子 CA 证书的密钥算法。

RSA_2048

ParentIdentifier

string

否

签发该证书的子 CA 证书的唯一识别码。

说明

您可以调用 DescribeCACertificateList 查询子 CA 证书的唯一识别码。

270ae6bb538d538c70c01f81fg3****

Years

integer

否

证书有效期。单位:年。

1

Months

integer

否

证书有效期。单位:月。

12

Days

integer

否

客户端证书的有效期。单位:天。 Days、BeforeTime、AfterTime 参数不能同时为空,同时 BeforeTime 和 AfterTime 参数必须同时为空或者同时设置。该参数具体设置说明如下:

  • 当设置 Days 参数时,您可以选择同时设置 BeforeTime 和 AfterTime 参数或者不设置 BeforeTime 和 AfterTime 参数。

  • 当不设置 Days 参数时,您必须设置 BeforeTime 和 AfterTime 参数。

说明
  • 当您同时设置 Days、BeforeTime、AfterTime 参数时,客户端证书的有效期以 Days 参数的值为准。

  • 客户端证书的有效期不能超过子 CA 证书的有效期。您可以调用 DescribeCACertificate 查看子 CA 证书的有效期。

365

BeforeTime

integer

否

客户端证书的签发时间,使用时间戳格式,默认为您调用该接口的时间。单位:秒。

说明

BeforeTime 和 AfterTime 参数必须同时为空或者同时设置。

1634283958

AfterTime

integer

否

客户端证书的服务到期时间,使用时间戳格式。单位:秒。

说明

BeforeTime 和 AfterTime 参数必须同时为空或者同时设置。

1665819958

Immediately

integer

否

立即返回数字证书。

  • 0,不返回。默认值。

  • 1,返回证书。

  • 2, 返回证书及其证书链 。

1

EnableCrl

integer

否

是否包含 CRL 地址

0 - 否

1 - 是

1

Tags

array<object>

否

标签列表。

object

否

标签列表。

Key

string

否

标签键。

database

Value

string

否

标签的值(value)。

1

ResourceGroupId

string

否

证书所属资源组的 ID。

rg-ae******4wia

CustomIdentifier

string

否

用户自定义标识,唯一键。

***e6bb538d538c70c01f81fg3****

AsynchronousFlag

boolean

否

异步处理标识。当传值为“true”时,后端服务将采用异步的方式申请证书。 用户请求后可通过 ListClientCertificate 接口获取最新证书。

false

调用 API 时,除了本文中该 API 的请求参数,还需加入阿里云 API 公共请求参数。

调用 API 的请求格式,请参见本文示例中的请求示例。

返回参数

名称

类型

描述

示例值

object

CreateCertificateResponse

X509Certificate

string

客户端证书的内容。

-----BEGIN CERTIFICATE-----\n......\n-----END CERTIFICATE-----

CertificateChain

string

CA 证书链。

-----BEGIN CERTIFICATE-----\n......\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\n......\n-----END CERTIFICATE-----\n

Identifier

string

客户端证书的唯一识别码。

200ae6bb538d538c70c01f81dcf2****

SerialNumber

string

证书序列号。

084bde9cd233f0ddae33adc438cfbbbd****

RequestId

string

本次调用请求的 ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。

31C66C7B-671A-4297-9187-2C4477247A74

CertSignBufKmc

string

加密证书内容。

MIIDYDCCAwWgAwIBAgIU *** TmTk0CS3WNweqsjMEETyxd2pzU6DA

CertKmcRep1

string

加密证书密文。

userSeal=MHkCIEu94PQAahFWuFk% *** EtFw%2FkMMBjw8i5bFfSkV%2FIUrcOJD

示例

正常返回示例

JSON格式

{
  "X509Certificate": "-----BEGIN CERTIFICATE-----\\n......\\n-----END CERTIFICATE-----",
  "CertificateChain": "-----BEGIN CERTIFICATE-----\\n......\\n-----END CERTIFICATE-----\\n-----BEGIN CERTIFICATE-----\\n......\\n-----END CERTIFICATE-----\\n",
  "Identifier": "200ae6bb538d538c70c01f81dcf2****",
  "SerialNumber": "084bde9cd233f0ddae33adc438cfbbbd****",
  "RequestId": "31C66C7B-671A-4297-9187-2C4477247A74",
  "CertSignBufKmc": "MIIDYDCCAwWgAwIBAgIU\n***\nTmTk0CS3WNweqsjMEETyxd2pzU6DA",
  "CertKmcRep1": "userSeal=MHkCIEu94PQAahFWuFk%\n***\nEtFw%2FkMMBjw8i5bFfSkV%2FIUrcOJD"
}

错误码

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情。