You need to enable JavaScript to run this app.
导航
上传证书(新版)
最近更新时间:2024.10.10 18:48:42首次发布时间:2024.04.07 16:50:43

在火山引擎内容分发网络(CDN)中上传一本证书。该证书可以是服务器证书,也可以是 CA 证书。证书使用的密钥算法可以是 RSA、ECC 或 SM2。

使用限制

节流限制:您每秒最多可以提交 20 个 API 请求。

请求说明

  • 请求方式:POST
  • 请求地址:https://cdn.volcengineapi.com/?Action=AddCertificate&Version=2021-03-01

请求参数

Query

参数名称
数据类型
是否必选
参数说明
Action
String
接口名称。当前 API 的名称为 AddCertificate
Version
String
接口版本。当前 API 的版本为 2021-03-01

Body

参数名称
数据类型
是否必选
参数说明
示例
Certificate
String

表示证书文件的内容。内容中的换行必须使用 \r\n 替换。证书文件的扩展名是 .crt 或者 .pem。

  • CertTypeserver_cert 时,
    • 如果 EncryTypeinter_cert,该文件是您要上传的服务器证书的证书文件。文件名类似 <domain>.crt
    • 如果 EncryTypesm_cert,该文件是您要上传的国密证书的证书文件,用于验证签名。文件名类似 <domain>_sign.crt
    • 建议上传的证书文件内容包含完整的证书链。
  • CertTypeca_cert 时,该文件是您要上传的 CA 证书文件。
    • 您上传的 CA 证书不能仅仅是中间 CA 证书。
    • 如果 CA 证书包含证书链,该证书链不能超过三级。

说明

  • 关于上传服务器证书的示例,参见 示例 1
  • 关于上传 CA 证书的示例,参见 示例 4
-----BEGIN CERTIFICATE-----\r\n......\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\n.......\r\n-----END CERTIFICATE-----
PrivateKey
String

表示证书私钥文件的内容。内容中的换行必须使用 \r\n 替换。私钥文件的扩展名是 .key 或者 .pem。

  • CertTypeserver_cert 时:

    • 如果 EncryTypeinter_cert,该文件是您要上传的服务器证书的私钥文件。文件名类似 <domain>.key
    • 如果 EncryTypesm_cert,该文件是您要上传的国密证书的私钥文件,用于生成签名。文件名类似 <domain>_sign.key
  • CertTypeca_cert 时,该参数无效。

----BEGIN <XXX> PRIVATE KEY-----\r\n.....\r\n-----END <XXX> PRIVATE KEY-----

对于使用 RSA 算法的证书私钥,示例中的 <XXX> 是 RSA。

对于使用 ECC 或 SM2 算法的证书私钥,示例中的 <XXX> 是 EC。
Desc
String
表示该证书的备注。
Note
Source
String

表示证书托管的位置。该参数有以下取值:

  • volc_cert_center:表示火山引擎证书中心。
  • cdn_cert_hosting:表示 CDN。参见 CDN 证书托管
CertTypeca_cert 时,Source 必须是 cdn_cert_hosting
volc_cert_center
Repeatable
Boolean

表示是否允许上传相同的证书。如果两个证书的指纹相同,这两个证书被认为是相同的证书。该参数有以下取值:

  • true:表示允许上传相同的证书。在调用该 API 时,CDN 会检查是否已存在相同的证书。如果存在,您无法上传该证书,同时响应正文的 Error 结构体中会包含已存在的证书的 ID。
  • false:表示不允许上传相同的证书。

关于 Repeatable 的默认值:

  • Sourcevolc_cert_center 时,Repeatable 的默认值是 true
  • Sourcecdn_cert_hostingRepeatable 的默认值是 false。同时,您不能指定 Repeatabletrue
true
CertType
String

表示证书的类型。该参数有以下取值:

  • server_cert:表示证书类型是服务器证书,也就是 SSL 证书。
  • ca_cert:表示证书类型是 CA 证书。参见 内容分发网络证书托管
该参数的默认值是 server_cert
server_cert
EncryType
String

表示证书使用的密钥算法。该参数有以下取值:

  • inter_cert:表示 RSA 或 ECC 算法。
  • sm_cert:表示 SM2 算法,也就是国密算法。
该参数的默认值是 inter_cert
inner_cert
EncryptionCert
String

表示国密证书的证书文件的内容。内容中的换行必须使用 \r\n 替换。该文件用于加密,扩展名是 .crt 或者 .pem。文件名类似 <domain>_encrypt.crt

该参数仅当 CertTypeserver_cert,并且 EncryTypesm_cert 时有效。

说明

关于上传国密证书的示例,参见 示例 3

-----BEGIN CERTIFICATE-----\r\n......\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\n.......\r\n-----END CERTIFICATE-----
EncryptionKey
String

表示国密证书的私钥文件的内容。内容中的换行必须使用 \r\n 替换。该文件用于解密,扩展名是 .key 或者 .pem。文件名类似 <domain>_encrypt.key

该参数仅当 CertTypeserver_cert,并且 EncryTypesm_cert 时有效。
----BEGIN EC PRIVATE KEY-----\r\n.....\r\n-----END EC PRIVATE KEY-----

返回参数

参数名称
数据类型
参数说明
示例
CertId
String
表示上传后该证书在 Source 中的 ID。
cert-17f1d965a11342eb80d9a0ecfef35713

请求示例 1

该示例演示了如何上传一本使用 RSA 算法的服务器证书。上传后的证书是托管在火山引擎证书中心的。

POST https://cdn.volcengineapi.com/?Action=AddCertificate&Version=2021-03-01
{
    "Source": "volc_cert_center",
    "Certificate": "-----BEGIN CERTIFICATE-----\r\nMIGrhI\r\nmg==\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIIE ==\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIID \r\nMrY=\r\n-----END CERTIFICATE-----",
    "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIjQVx9Q==\r\n-----END RSA PRIVATE KEY-----",
    "Repeatable": false
}

返回示例 1

{
    "ResponseMetadata": {
        "RequestId": "20240401215347C8101DF6B5EA14943C6E",
        "Action": "AddCertificate",
        "Version": "2021-03-01",
        "Service": "CDN",
        "Region": "cn-north-1"
    },
    "Result": {
        "CertId": "cert-6538a3e999094a9eb2311c8c3c16b9eb"
    }
}

请求示例 2

在示例 1 的基础上,我们上传相同的证书。在上传证书时,指定 Repeatablefalse。请留意响应结果中的错误消息。

POST https://cdn.volcengineapi.com/?Action=AddCertificate&Version=2021-03-01
{
    "Source": "volc_cert_center",
    "Certificate": "-----BEGIN CERTIFICATE-----\r\nMIGrhI\r\nmg==\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIIE ==\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIID \r\nMrY=\r\n-----END CERTIFICATE-----",
    "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIjQVx9Q==\r\n-----END RSA PRIVATE KEY-----",
    "Repeatable": false
}

返回示例 2

错误消息提示待上传的证书已存在。同时,错误消息中还包含了现有证书的 ID。

{
    "ResponseMetadata": {
        "RequestId": "20240401215849A247C098FE59A995A0D4",
        "Action": "AddCertificate",
        "Version": "2021-03-01",
        "Service": "CDN",
        "Region": "cn-north-1",
        "Error": {
            "Code": "InvalidParameter.Certificate.Duplicated",
            "Message": "证书已存在,ID为 cert-6538a3e999094a9eb2311c8c3c16b9eb。"
        }
    }
}

请求示例 3

该示例演示了如何上传一本使用 SM2 算法的服务器证书。上传后的证书是托管在火山引擎证书中心的。

POST https://cdn.volcengineapi.com/?Action=AddCertificate&Version=2021-03-01
{
    "Source": "volc_cert_center",
    "Certificate": "-----BEGIN CERTIFICATE-----\r\nMIGrhI\r\nmg==\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIIE ==\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIID \r\nMrY=\r\n-----END CERTIFICATE-----",
    "PrivateKey": "-----BEGIN EC PRIVATE KEY-----\r\nMIIjQVx9Q==\r\n-----END EC PRIVATE KEY-----",
    "EncryType": "sm_cert",
    "EncryptionCert":"-----BEGIN CERTIFICATE-----\r\nMIGrhI\r\nmg==\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIIE ==\r\n-----END CERTIFICATE-----\r\n-----BEGIN CERTIFICATE-----\r\nMIID \r\nMrY=\r\n-----END CERTIFICATE-----",
    "EncryptionKey": "-----BEGIN EC PRIVATE KEY-----\r\nMIIjQVx9Q==\r\n-----END EC PRIVATE KEY-----",
}

返回示例 3

{
    "ResponseMetadata": {
        "RequestId": "202406071719515F5CDC0CE9AEB8096C9F",
        "Action": "AddCertificate",
        "Version": "2021-03-01",
        "Service": "CDN",
        "Region": "cn-north-01"
    },
    "Result": {
        "CertId": "cert-c5ba31f8ebfe499b8fabfb24707d71ab"
    }
}

请求示例 4

该示例演示了如何上传一本使用 RSA 算法的 CA 证书。上传后的证书托管在 CDN。

POST https://cdn.volcengineapi.com/?Action=AddCertificate&Version=2021-03-01
{
    "Source": "cdn_cert_hosting",
    "CertType": "ca_cert",
    "Certificate": "-----BEGIN CERTIFICATE-----\r\nMIGrhI\r\nmg==\r\n-----END CERTIFICATE-----"
}

返回示例 4

{
    "ResponseMetadata": {
        "RequestId": "20240607175000C2A8B5333951500F2227",
        "Action": "AddCertificate",
        "Version": "2021-03-01",
        "Service": "CDN",
        "Region": "cn-north-01"
    },
    "Result": {
        "CertId": "cert_hosting-33925"
    }
}

错误码

如果响应正文的 ResponseMetadata 字段中包含 Error 字段,则表示 API 请求失败。更多关于错误码的信息,参见错误码