配置HTTPS認證後您才能通過HTTPS方式訪問資源,實現HTTPS安全加速。HTTPS配置僅支援上傳PEM格式的認證和私密金鑰內容,不同憑證授權單位對認證內容的上傳有不同的要求。本文介紹阿里雲CDN支援的認證格式和不同認證格式的轉換方式。

Root CA機構頒發的認證

Root CA機構頒發的認證是唯一的,一般包括Apache、IIS、Nginx和Tomcat。阿里雲CDN使用的認證是Nginx,包含尾碼為 .crt (認證)和尾碼為 .key (私密金鑰)的這兩個檔案。進入Nginx檔案夾,使用文字編輯器開啟 .crt .key 檔案,您可以看到與下圖格式相似的PEM格式的認證內容和私密金鑰內容。
图 1. PEM格式認證
1
PEM格式認證
  • 以“-----BEGIN CERTIFICATE-----”開頭,以“-----END CERTIFICATE-----”結尾。
  • 每行64個字元,最後一行可以不足64個字元。
認證上傳要求
  • 請將以“-----BEGIN CERTIFICATE-----”開頭和以“-----END CERTIFICATE-----”結尾的內容一併上傳。
  • 每行64個字元,最後一行可以不足64個字元。

中級機構頒發的認證

中級機構頒發的認證檔案包含多份認證,配置HTTPS時,您需要將伺服器憑證與中間認證拼接成一份完整的認證後再上傳。拼接後的認證如下圖所示。
图 2. 拼接後的PEM格式認證
2

憑證鏈結格式

中級機構頒發的憑證鏈結格式如下:

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

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

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

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

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

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

拼接規則

通過文字編輯器開啟所有*.PEM格式的認證檔案,將伺服器憑證放在第一位,中間認證放在第二位,認證之間不能有空行。通常情況下,憑證授權單位頒發認證時會有對應的說明,請注意查閱規則說明。

RSA私密金鑰格式要求

私密金鑰副檔名一般為 .pem .key ,在文字編輯器中開啟私密金鑰檔案,您可以看到與下圖格式相似的私密金鑰內容。
图 3. RSA格式私密金鑰
3
私密金鑰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
              

      擷取 outcertificat.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