调用CreateCertificateWithExtension签发带有扩展信息(包括域名、IP地址等)的客户端证书或者服务端证书。

使用说明

本接口一般用于创建带扩展信息的客户端证书或者服务端证书,方便您将该证书应用于多个域名或IP地址等。调用本接口前,您必须已经调用CreateRootCACertificate创建了根CA证书,并且调用CreateSubCACertificate创建了子CA证书。只有子CA证书才能签发客户端证书或者服务端证书。

QPS限制

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

调试

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

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateCertificateWithExtension

要执行的操作。取值:CreateCertificateWithExtension

CertType String SERVER

设置证书的类型 。取值:

  • SERVER:表示服务端证书。
  • CLIENT:表示客户端证书。
CommonName String aliyun

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

说明 如果您设置了CsrPemString参数,则CommonName参数取值以CsrPemString参数中的对应信息为准。
ParentIdentifier String 7f5761afc960009105c68a6a34fb****

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

说明 您可以调用DescribeCACertificateList查询子CA证书的唯一识别码。
Sans String [ {"Type": 2, "Value": "aliyundoc.com"} ]

设置证书的扩展信息。支持JSON格式:[{"Type": <扩展类型>, "Value": "<具体的扩展信息>"}]。扩展信息参数说明如下:

  • Type:Integer类型,表示扩展的类型。取值:
    • 1:表示邮箱。
    • 2:表示域名。
    • 6:表示统一资源标志符URI(Uniform Resource Identifier)。
    • 7:表示IP地址。
  • Value:String类型,表示具体的扩展信息。

此示例表示设置证书的扩展域名为aliyundoc.com。

[
  {"Type": 2, "Value": "aliyundoc.com"}
]
BeforeTime Long 1632894933

设置证书的签发时间,使用时间戳格式。单位:秒。

AfterTime Long 1664430933

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

Organization String 阿里云

设置证书关联的组织机构(对应您的企业或单位)的名称。支持使用中文、英文字符等。

默认为签发该证书的子CA证书的组织机构名称。

OrganizationUnit String IT

设置证书组织机构下部门或分支的名称。支持使用中文、英文字符等。

默认为签发该证书的子CA证书的组织机构下部门或分支名称。

State String 浙江省

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

Locality String 杭州市

设置证书组织机构所在城市的名称。支持使用中文、英文字符等。

默认为签发该证书的子CA证书的组织机构所在城市的名称。

CsrPemString String -----BEGIN CERTIFICATE REQUEST----- ...... -----END CERTIFICATE REQUEST-----

设置用于签发证书的CSR,格式:PEM。您可以通过OpenSSL工具或者Keytool工具生成CSR。更多信息,请参见如何制作CSR文件

您也可以通过SSL证书控制台创建CSR。更多信息,请参见创建CSR

如果设置该参数,则表示子CA证书会基于该CSR签发证书,并且证书的以下信息将以该CSR中的对应信息为准:

  • Organization
  • OrganizationUnit
  • CountryCode
  • State
  • Locality
  • CommonName
  • AlgorithmKeySize
BasicConstraintsCritical Boolean true

设置是否将证书的基本约束扩展标记为关键。

取值:

  • true:表示将证书的基本约束扩展标记为关键。
  • false:表示将证书的基本约束扩展标记为不关键。

默认值为true

AppendCrl Boolean false

设置是否在证书中添加证书吊销列表CRL(Certificate Revocation List)。取值:

  • true:表示在证书中添加CRL。
  • false:表示在证书中不添加CRL。

默认值为false

AliasName String cert-name

设置签发证书的名称。

CountryCode String CN

设置证书组织机构所在国家或地区的代码。例如,CN表示中国,US表示美国。默认为签发该证书的子CA证书组织机构所在国家的代码。

关于不同国家的代码,请参见管理公司信息中的国际代号章节。

AlgorithmKeySize Integer 2048

设置证书加密算法的密钥长度。密钥长度必须与加密算法相匹配,即如果子CA证书的密钥算法为RSA,则签发证书的密钥长度必须是102420484096中的一个。

RSA加密算法匹配的密钥长度:

  • 1024
  • 2048
  • 4096

ECC加密算法匹配的密钥长度:

  • 256
  • 384
  • 512

SM2加密算法匹配的密钥长度:

  • 256
  • 384
  • 512
说明
  • 您可以调用DescribeCACertificate查询子CA证书的加密算法类型。
  • 如果您设置了CsrPemString参数,则AlgorithmKeySize参数取值以CsrPemString参数中的对应信息为准。

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

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

返回数据

名称 类型 示例值 描述
Identifier String e6316d4a3c4682b4c99cd0027b69****

签发的证书的唯一识别码。

RequestId String EA69E364-5CBB-50E8-BF09-E8CAA396A4F8

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

Certificate String -----BEGIN CERTIFICATE-----\n......\n-----END CERTIFICATE-----

本次调用签发的证书的内容。

CertificateChain String -----BEGIN CERTIFICATE-----\n......\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\n......\n-----END CERTIFICATE-----\n

本次调用签发的证书的证书链。

示例

请求示例

http(s)://[Endpoint]/?Action=CreateCertificateWithExtension
&CertType=SERVER
&CommonName=aliyun
&ParentIdentifier=7f5761afc960009105c68a6a34fb****
&Sans=[   {"Type": 2, "Value": "aliyundoc.com"} ]
&BeforeTime=1632894933
&AfterTime=1664430933
&Organization=阿里云
&OrganizationUnit=IT
&State=浙江省
&Locality=杭州市
&CsrPemString=-----BEGIN CERTIFICATE REQUEST-----   ...... -----END CERTIFICATE REQUEST-----
&BasicConstraintsCritical=true
&AppendCrl=false
&AliasName=cert-name
&CountryCode=CN
&AlgorithmKeySize=2048
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateCertificateWithExtensionResponse>
    <Identifier>e6316d4a3c4682b4c99cd0027b69****</Identifier>
    <RequestId>EA69E364-5CBB-50E8-BF09-E8CAA396A4F8</RequestId>
    <Certificate>-----BEGIN CERTIFICATE-----
      ......
      -----END CERTIFICATE-----
    </Certificate>
    <CertificateChain>-----BEGIN CERTIFICATE-----
      ......
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      ......
      -----END CERTIFICATE-----
    </CertificateChain>
</CreateCertificateWithExtensionResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "Identifier" : "e6316d4a3c4682b4c99cd0027b69****",
  "RequestId" : "EA69E364-5CBB-50E8-BF09-E8CAA396A4F8",
  "Certificate" : "-----BEGIN CERTIFICATE-----\n......\n-----END CERTIFICATE-----",
  "CertificateChain" : "-----BEGIN CERTIFICATE-----\n......\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\n......\n-----END CERTIFICATE-----\n"
}

错误码

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