证书格式说明

更新时间:
复制 MD 格式

CDN只支持上传PEM格式的证书和私钥,针对不同证书颁发机构的证书,对证书内容的上传有不同的要求。

Root CA机构颁发的证书

Root CA机构可以颁发多个证书,这些证书可以用于Apache、IIS、NginxTomcatWeb服务器。阿里云CDN使用的证书格式与Nginx兼容,包含后缀为.crt(证书)和后缀为.key(私钥)的这两个文件。

您可以进入Nginx文件夹,使用文本编辑器打开.crt文件。

PEM格式证书

  • 以“-----BEGIN CERTIFICATE-----”开头,以“-----END CERTIFICATE-----”结尾。

  • 每行64个字符,最后一行可以不足64个字符。

证书上传要求

  • 请将以“-----BEGIN CERTIFICATE-----”开头和以“-----END CERTIFICATE-----”结尾的内容一并上传。

  • 每行64个字符,最后一行可以不足64个字符。

中级机构颁发的证书

配置HTTPS时,您需要将服务器证书与中间证书拼接成一份完整的证书后再上传。

证书链格式

中级机构颁发的证书链格式如下:

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----

拼接规则

  • 通过文本编辑器打开所有*.PEM格式的证书文件。

  • 将服务器证书放在第一位,中间证书放在第二位,证书之间不能有空行。

RSA私钥格式要求

私钥扩展名一般为.pem.key

私钥PEM格式

  • 以“-----BEGIN RSA PRIVATE KEY-----”开头,“-----END RSA PRIVATE KEY-----”结尾。

  • 每行64个字符,最后一行可以不足64个字符。

私钥上传要求

上传RSA私钥之前,您需要通过openssl genrsa -out privateKey.pem 2048在本地先生成私钥,privateKey.pem为您的私钥文件。

  • 请将以“-----BEGIN RSA PRIVATE KEY-----”开头和以“-----END RSA PRIVATE KEY-----”结尾的内容一并上传。

  • 每行64个字符,最后一行可以不足64个字符。

如果您得到的是以“-----BEGIN PRIVATE KEY-----”开头,以“-----END PRIVATE KEY-----”结尾的私钥,您需要使用OpenSSL工具执行以下命令进行转换,然后将new_server_key.pem的内容与证书一起上传。

openssl rsa -in old_server_key.pem -out new_server_key.pem

密钥长度要求

  • 最小密钥长度:建议不低于 2048 位。低于 2048 位的 RSA 密钥(如 1024 位)安全性不足,上传时可能被后端校验拒绝。

  • 推荐密钥长度:2048 位或 4096 位。可使用 openssl genrsa -out privateKey.pem 2048openssl genrsa -out privateKey.pem 4096 生成。

  • ECC 证书:CDN 也支持 ECC(椭圆曲线)证书。常见的 ECC 曲线类型包括 prime256v1(即 secp256r1)和 secp384r1。生成 ECC 私钥的示例命令:

    openssl ecparam -genkey -name prime256v1 -out ecc_key.pem
说明

具体的密钥长度上限和 ECC 曲线支持清单以 CDN 后端 API 实际校验为准。如果上传时遇到密钥相关的格式错误,建议使用标准 2048 位 RSA 或 prime256v1 ECC 密钥重新生成。

证书格式转换方式

HTTPS配置只支持PEM格式的证书,其他格式的证书需要转换成PEM格式,建议通过OpenSSL工具进行转换。下面是几种主流的证书格式转换为PEM格式的方法。

说明
  • CRT文件可能是PEMDER编码格式,转换前请确认您的证书格式。

  • PEM一般为文本格式,以 “-----BEGIN ***-----”开头,以 “-----END ***-----”结尾,中间的内容是Base64编码。PEM格式的私钥后缀一般为.key

  • DER转换为PEM

    DER格式一般出现在Java平台中。

    • 证书转换:

      openssl x509 -inform der -in certificate.cer -out certificate.pem
    • 私钥转换:

      openssl rsa -inform DER -outform pem -in privatekey.der -out privatekey.pem
  • P7B转换为PEM

    P7B格式一般出现在Windows ServerTomcat中。

    • 证书转换:

      openssl pkcs7 -print_certs -in incertificat.p7b -out outcertificate.cer

      获取outcertificate.cer中的-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----内容作为证书进行上传。

    • 私钥转换:

      P7B证书无私钥,您只需在CDN控制台填写证书部分,私钥无需填写。

  • PFX转换为PEM

    PFX格式一般出现在Windows Server中。

    • 证书转换:

      openssl pkcs12 -in certname.pfx -nokeys -out cert.pem
    • 私钥转换:

      openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes

签名算法支持说明

CDN 支持的证书签名算法取决于后端 API 的校验规则。以下是常见签名算法的兼容性参考:

推荐使用的签名算法

  • SHA-256 with RSA(sha256WithRSAEncryption)

  • SHA-384 with RSA

  • SHA-512 with RSA

  • ECDSA with SHA-256(适用于 ECC 证书)

不建议使用

  • SHA-1 with RSA:SHA-1 已被主流浏览器标记为不安全,部分后端校验可能拒绝 SHA-1 签名的证书。

说明

CDN 控制台在前端不对签名算法做任何校验,签名算法的兼容性由后端 API 决定。如果上传的证书使用了不常见的签名算法并收到错误提示,建议使用 SHA-256 with RSA 或更安全的算法重新签发证书。

您可以通过以下命令检查证书的签名算法:

openssl x509 -in your_cert.pem -noout -text | grep "Signature Algorithm"

输出结果类似 Signature Algorithm: sha256WithRSAEncryption