調(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 | 簽名算法。取值:
|
MessageType | String | 是 | RAW | 消息類型。取值:
|
Message | String | 是 | VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4= | 待簽名數(shù)據(jù)。 使用Base64編碼。例如:待簽名數(shù)據(jù)的十六進(jìn)制內(nèi)容為 當(dāng)MessageType取值為RAW時(shí),數(shù)據(jù)內(nèi)容需小于4KB。 如果待簽名數(shù)據(jù)內(nèi)容大于4KB,您可以將MessageType指定為DIGEST,將Message指定為本地計(jì)算的消息摘要(又稱哈希值)。證書管家將使用您自己的證書應(yīng)用系統(tǒng)計(jì)算消息摘要,使用的消息摘要算法須與指定簽名算法需要的消息摘要算法保持一致。具體如下:
說明 當(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ò)誤碼。