調(diào)用CertificatePrivateKeySign接口使用指定證書生成數(shù)字簽名。

請(qǐng)求參數(shù)中簽名算法需要跟密鑰類型對(duì)應(yīng)。簽名算法和密鑰類型對(duì)照表如下:

Algorithm

Key Spec

RSA_PKCS1_SHA_256

RSA_2048

RSA_PSS_SHA_256

RSA_2048

ECDSA_SHA_256

EC_P256

SM2DSA

EC_SM2

本文將提供一個(gè)示例,使用ID為12345678-1234-1234-1234-12345678****的證書,通過ECDSA_SHA_256簽名算法為原始數(shù)據(jù)VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4=生成數(shù)字簽名。

調(diào)試

您可以在OpenAPI Explorer中直接運(yùn)行該接口,免去您計(jì)算簽名的困擾。運(yùn)行成功后,OpenAPI Explorer可以自動(dòng)生成SDK代碼示例。

請(qǐng)求參數(shù)

名稱 類型 是否必選 示例值 描述
Action String CertificatePrivateKeySign

要執(zhí)行的操作。取值:CertificatePrivateKeySign

CertificateId String 12345678-1234-1234-1234-12345678****

證書ID。證書管家中證書的全局唯一標(biāo)識(shí)符。

Algorithm String ECDSA_SHA_256

簽名算法。取值:

  • RSA_PKCS1_SHA_256
  • RSA_PSS_SHA_256
  • ECDSA_SHA_256
  • SM2DSA
    說明 SM2DSA簽名算法僅在中國(guó)內(nèi)地使用托管密碼機(jī)的地域支持。更多信息,請(qǐng)參見托管密碼機(jī)概述
MessageType String RAW

消息類型。取值:

  • RAW(默認(rèn)值):原始數(shù)據(jù)。
  • DIGEST:原始數(shù)據(jù)的消息摘要(哈希值)。
Message String VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4=

待簽名數(shù)據(jù)。

使用Base64編碼。例如:待簽名數(shù)據(jù)的十六進(jìn)制內(nèi)容為[0x31, 0x32, 0x33, 0x34],則對(duì)應(yīng)的Base64編碼為MTIzNA==

當(dāng)MessageType取值為RAW時(shí),數(shù)據(jù)內(nèi)容需小于4KB。

如果待簽名數(shù)據(jù)內(nèi)容大于4KB,您可以將MessageType指定為DIGEST,將Message指定為本地計(jì)算的消息摘要(又稱哈希值)。證書管家將使用您自己的證書應(yīng)用系統(tǒng)計(jì)算消息摘要,使用的消息摘要算法須與指定簽名算法需要的消息摘要算法保持一致。具體如下:

  • RSA_PKCS1_SHA_256、RSA_PSS_SHA_256和ECDSA_SHA_256對(duì)應(yīng)的消息摘要算法為SHA-256。
  • SM2DSA對(duì)應(yīng)的消息摘要算法為SM3。
說明 當(dāng)證書密鑰規(guī)格為EC_SM2,并且MessageType為DIGEST時(shí),Message值為GB/T 32918.2-2016 6.1中描述的e

關(guān)于公共請(qǐng)求參數(shù)的詳情,請(qǐng)參見公共參數(shù)

返回?cái)?shù)據(jù)

名稱 類型 示例值 描述
SignatureValue String ZOyIygCyaOW6Gj****MlNKiuyjfzw=

簽名值。

使用Base64編碼。

RequestId String 5979d897-d69f-4fc9-87dd-f3bb73c40b80

本次調(diào)用請(qǐng)求的ID,是由阿里云為該請(qǐng)求生成的唯一標(biāo)識(shí)符,可用于排查和定位問題。

CertificateId String 12345678-1234-1234-1234-12345678****

證書ID。

示例

請(qǐng)求示例

http(s)://[Endpoint]/?Action=CertificatePrivateKeySign
&CertificateId=12345678-1234-1234-1234-12345678****
&Algorithm=ECDSA_SHA_256
&MessageType=RAW
&Message=VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4=
&公共請(qǐng)求參數(shù)

正常返回示例

XML格式

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

<CertificatePrivateKeySignResponse>
    <SignatureValue>ZOyIygCyaOW6Gj****MlNKiuyjfzw=</SignatureValue>
    <RequestId>5979d897-d69f-4fc9-87dd-f3bb73c40b80</RequestId>
    <CertificateId>12345678-1234-1234-1234-12345678****</CertificateId>
</CertificatePrivateKeySignResponse>

JSON格式

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

{
  "SignatureValue" : "ZOyIygCyaOW6Gj****MlNKiuyjfzw=",
  "RequestId" : "5979d897-d69f-4fc9-87dd-f3bb73c40b80",
  "CertificateId" : "12345678-1234-1234-1234-12345678****"
}

錯(cuò)誤碼

HttpCode 錯(cuò)誤碼 錯(cuò)誤信息 描述
400 InvalidParameter The specified parameter is not valid. 參數(shù)非法。
404 Certificate.NotFound The specified certificate is not found. 指定的證書不存在。
404 InvalidAccessKeyId.NotFound The Access Key ID provided does not exist in our records. 提供的 Access Key ID不存在

訪問錯(cuò)誤中心查看更多錯(cuò)誤碼。