CDN只支持上传PEM格式的证书和私钥,针对不同证书颁发机构的证书,对证书内容的上传有不同的要求。
Root CA机构颁发的证书
Root CA机构可以颁发多个证书,这些证书可以用于Apache、IIS、Nginx和Tomcat等Web服务器。阿里云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 2048或openssl 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文件可能是PEM或DER编码格式,转换前请确认您的证书格式。
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 Server和Tomcat中。
证书转换:
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。