证书格式说明
配置HTTPS证书后您才能通过HTTPS方式访问资源,实现HTTPS安全加速。HTTPS配置仅支持上传PEM格式的证书和私钥内容,不同证书颁发机构对证书内容的上传有不同的要求。本文介绍百度云CDN支持的证书格式和不同证书格式的转换方式。通过百度智能云申请证书的具体操作方法请参看SSL证书服务。
Root CA机构颁发的证书
Root CA机构颁发的证书是唯一的,一般包括Apache、IIS、Nginx和Tomcat。百度云CDN使用的证书是Nginx,包含后缀为.crt(证书)和后缀为.key(私钥)的这两个文件。进入Nginx文件夹,使用文本编辑器打开.crt和.key文件。
证书 PEM 格式
- 证书以-----BEGIN CERTIFICATE-----开头,-----END CERTIFICATE-----结尾;
- 每行64字符,最后一行不超过64字符。
- 证书内容不包含空格。
- 证书需要在有效期内(证书开始时间 <= 有效期 <= 证书失效时间)
如图所示为PEM格式的证书示例:
中级机构颁发的证书
如果是通过中级 CA 机构颁发的证书,您拿到的证书文件包含多份证书,需要人为地将服务器证书与中间证书拼接在一起上传。
中级机构颁发的证书链格式
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
拼接规则
- 服务器证书放第一份,中间证书放第二份,中间换行符隔开,不要有空行。
- 一般情况下,机构在颁发证书时会有对应说明,请注意查阅规则说明。
如图所示:
RSA私钥格式要求
私钥扩展名一般为 “.pem” 或 “.key”,在文本编辑器中打开私钥文件。
私钥 PEM 格式
- 私钥格式以-----BEGIN RSA PRIVATE KEY-----作为开头,-----END RSA PRIVATE KEY----- 作为结尾。
- 私钥不能加密,即执行生成私钥命令时不能添加密码参数。
- 中间的内容每行64字符,最后一行长度可以不足64字符。
如图所示为PEM格式的私钥示例:
注意:
如果您得到的是以“-----BEGIN PRIVATE KEY-----”开头,以“-----END PRIVATE KEY-----”结尾的私钥,您需要使用OpenSSL工具执行以下命令进行转换,命令如下图,然后将new_server_key.pem的内容与证书一起上传。
openssl rsa -in old_server_key.pem -out new_server_key.pem
证书格式转换方式
HTTPS配置只支持PEM格式的证书,其他格式的证书需要转换成PEM格式,建议通过OpenSSL工具进行转换。下面是几种比较流行的证书格式转换为PEM格式的方法。
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
用文本编辑器打开 outcertificat.cer 即可查看 PEM 格式的证书内容。
私钥转换:私钥一般在 IIS 服务器里可导出。
PFX 转换为 PEM
PFX 格式一般出现在 Windows Server 中。
证书转换:
openssl pkcs12 -in certname.pfx -nokeys -out cert.pem
私钥转换:
openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes