不同的伺服器和控制面板可能需要不同文件格式的 SSL 證書。為了將證書從一種格式轉換為另一種格式,您可以使用通常在 Linux 機器上可用的 OpenSSL 軟件包。
事實上,我們提供的證書是以 x.509 格式發放的,這是 ASN.1 文件編碼標準的版本。在本文中,我們將討論根據編碼規則而有所不同的文件格式。
總的來說,我們可以區分以下證書文件格式:
1) PEM 是一種 base64 編碼的證書,放置在 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 標頭之間。它是最廣泛使用的證書格式,主要用於基於 Linux 的伺服器,如 Apache、Nginx,以及大多數網絡托管控制面板(cPanel、Plesk、DirectAdmin、WebMin 等)。PEM 證書的文件擴展名可能為:*.pem, *.crt, *.cer。如果在證書激活期間選擇除 'Microsoft Internet Information Server'(Microsoft IIS)之外的任何伺服器類型,COMODO CA 將以 PEM 格式發送其證書。
2) PKCS#7 是另一種用於 Base64 編碼的證書,通常由 Windows 和 Java 基於 Tomcat 的伺服器使用,並可以包含域端實體證書和 CA 鏈證書。如果您在文本編輯器中打開 PKCS#7 文件,可以看到在 -----BEGIN PKCS7----- 和 -----END PKCS7----- 標籤之間的編碼文本。最常見的擴展名為:*.p7b, *.p7s, *.cer。如果在證書激活期間選擇 'Microsoft Internet Information Server' 作為伺服器類型,可以從 COMODO 獲得 PKCS#7 格式的證書。
3) PKCS#12/PFX 是一種二進制格式的文件,包含證書及其對應的私鑰,並受到密碼保護。可選地,該文件還可以包括 CA 鏈證書。通常,PFX 證書用於 Windows 機器,是將證書從一個 Windows 伺服器轉移到另一個的必要條件。文件擴展名為:*.p12 和 *.pfx.
要將證書轉換為不同的格式,您可以使用以下命令:
從 PEM 轉換為 PKCS#7
openssl crl2pkcs7 -nocrl -certfile your_pem_certificate.crt -out your_pkcs7_certificate.p7b -certfile CA-bundle.crt
從 PKCS#7 轉換為 PEM
openssl pkcs7 -print_certs -in your_pkcs7_certificate.p7b -out your_pem_certificates.pem
如果 PKCS#7 文件包含鏈證書,新生成的 .pem 文件也將包括它們,分開存放。
從 PEM 轉換為 PFX
openssl pkcs12 -export -out your_pfx_certificate.pfx -inkey your_private.key -in your_pem_certificate.crt -certfile CA-bundle.crt
您也將被要求指定 PFX 文件的密碼。請確保您記住密碼,因為在需要將 PFX 匯入新伺服器時會用到它。
從 PFX 轉換為 PEM
openssl pkcs12 -in your_pfx_certificate.pfx -out your_pem_certificates_and_key.pem -nodes
系統會要求您輸入轉換時使用的 PFX 文件的密碼。所獲得的 PEM 文件將包含證書、鏈證書(可選)和私鑰。
從 PKCS#7 轉換為 PFX
要將證書從 PKCS#7 轉換為 PFX,應首先將證書轉換為 PEM:
openssl pkcs7 -print_certs -in your_pkcs7_certificate.p7b -out your_pem_certificates.pem
之後,可以將證書轉換為 PFX:
openssl pkcs12 -export -out your_pfx_certificate.pfx -inkey your_private.key -in your_pem_certificate.crt
或者,也可以使用在線工具轉換證書。