CDN只支持上傳PEM格式的證書和私鑰,針對不同證書頒發機構的證書,對證書內容的上傳有不同的要求。
Root CA機構頒發的證書
Root CA機構頒發的證書是唯一的,一般包括Apache、IIS、Nginx和Tomcat。阿里云CDN使用的證書是Nginx,包含后綴為.crt
(證書)和后綴為.key
(私鑰)的這兩個文件。
進入Nginx文件夾,使用文本編輯器打開.crt
文件,您可以看到與下圖格式相似的PEM格式的證書內容。
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
證書格式轉換方式
HTTPS配置只支持PEM格式的證書,其他格式的證書需要轉換成PEM格式,建議通過OpenSSL工具進行轉換。下面是幾種比較流行的證書格式轉換為PEM格式的方法。
CRT后綴文件是Certificate的簡稱,可能是PEM編碼格式,也可能是DER編碼格式。進行證書格式轉換前請仔細確認您的證書格式是否需要轉換。
PEM(Privacy Enhanced Mail)一般為文本格式,以 “-----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