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

国家代码,例如 CNUS

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

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

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

  • 当不设置 Days 参数时,您必须设置 BeforeTimeAfterTime 参数。

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

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

365

BeforeTime

integer

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

说明

BeforeTimeAfterTime 参数必须同时为空或者同时设置。

1634283958

AfterTime

integer

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

说明

BeforeTimeAfterTime 参数必须同时为空或者同时设置。

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****

调用 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"
}

错误码

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

变更历史

更多信息,参考变更详情