书格式说明
常用证书申请流程
1. 本地生成私钥:openssl genrsa -out privateKey.pem 2048 其中privateKey.pem为您的私钥文件,请妥善保管。
2. 生成证书请求文件:openssl req -new -key privateKey.pem -out server.csr 其中server.csr是您的证书请求文件,可用其去申请证书。
3. 获取请求文件中的内容前往CA等机构站点申请证书。
证书格式要求
- 您要申请的证书为:linux环境下 PEM 格式的证书,不支持其他格式的证书,如是其它格式的证书需要转换成 PEM 格式,具体请参考:“证书格式及转换方式”
- 如果是通过root CA机构颁发的证书,您拿到的证书为唯一的一份,不需要额外的证书,配置的站点即可被浏览器等访问设备认为可信。
- 如果是通过中级CA机构颁发的证书,您拿到的证书文件包含多份证书,需要人为的将服务器证书与中间证书合并在一起上传。
- 拼接规则为:服务器证书放第一份,中间证书放第二份,中间不要有空行。注:一般情况下,机构在颁发证书的时候会有对应说明, 请注意规则说明。
以下为证书格式和证书链格式范例,请确认格式正确后上传:
1、root CA机构颁发的证书: 证书格式为linux环境下 PEM 格式。Sample见附件1图片
证书规则为:
a、 [——-BEGIN CERTIFICATE——-, ——-END CERTIFICATE——-] 开头和结尾;请将这些内容一并上传;
b、 每行64字符,最后一行不超过64字符;
2、中级机构颁发的证书链:
——-BEGIN CERTIFICATE——-
——-END CERTIFICATE——-
——-BEGIN CERTIFICATE——-
——-END CERTIFICATE——-
——-BEGIN CERTIFICATE——-
——-END CERTIFICATE——-
证书链规则:
a、证书之间不能有空行;
b、每一份证书遵守第一点关于证书的格式说明;
RSA私钥格式要求
(图片见附件2)
rsa私钥规则:
a、[——-BEGIN RSA PRIVATE KEY——-, ——-END RSA PRIVATE KEY——-] 开头结尾;请将这些内容一并上传;
b、每行64字符,最后一行长度可以不足64字符。
如果您不是按照上述方案生成私钥,得到[——-BEGIN PRIVATE KEY——-, ——-END PRIVATE KEY——-] 这种样式的私钥,您可以按照如下方式转换:
openssl rsa -in old_server_key.pem -out new_server_key.pem
然后将new_server_key.pem的内容与证书一起上传。
证书格式转换方式
CDN 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里面[——-BEGIN CERTIFICATE——-, ——-END CERTIFICATE——-]的内容作为证书上传。
PFX 转换为 PEM
PFX格式一般出现在windows server中。
证书转化:
openssl pkcs12 -in certname.pfx -nokeys -out cert.pem
私钥转化:
openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes
其它证书相关问题
- 添加一个加速域名后,配置域名的HTTPS安全加速功能,开启该功能必须要上传证书,包含证书/私钥,均为 PEM 格式,快速入门
- 支持证书的“停用”和“启用”,支持修改证书,若“停用”证书后,将不再保留证书信息,再次开启证书,需要重新上传证书/私钥,HTTPS安全加速设置教程
- 只支持带SNI信息的SSL/TLS握手
- 用户上传的证书和私钥要匹配,否则会校验出错
- 更新证书的生效时间是1个小时
- 不支持带密码的私钥