OpenSSL:證書格式的相互轉換, 例如.pem,.crt,.cer,.pfx
PEM格式
PEM格式是證書頒發機構頒發證書的最常見格式.PEM證書通常具有副檔名,例如.pem,.crt,.cer和.key。它們是Base64編碼的ASCII檔案,包含“----- BEGIN CERTIFICATE -----”和“----- END CERTIFICATE -----”語句。伺服器證書,中間證書和私鑰都可以放入PEM格式。
Apache和其他類似伺服器使用PEM格式證書。幾個PEM證書,甚至私鑰,可以包含在一個檔案中,一個在另一個檔案之下,但是大多數平臺(例如Apache)希望證書和私鑰位於單獨的檔案中。
DER格式
DER格式只是證書的二進位制形式,而不是ASCII PEM格式。它有時會有.der
PKCS#7 / P7B格式
PKCS#7或P7B格式通常以Base64 ASCII格式儲存,檔案擴充套件名為.p7b或.p7c。P7B證書包含“----- BEGIN PKCS7 -----”和“----- END PKCS7 -----”語句。P7B檔案僅包含證書和鏈證書,而不包含私鑰。多個平臺支援P7B檔案,包括Microsoft Windows和Java Tomcat
PKCS#12 / PFX格式
PKCS#12或PFX格式是二進位制格式,用於將伺服器證書,任何中間證書和私鑰儲存在一個可加密檔案中。PFX檔案通常具有副檔名,例如.pfx和.p12。PFX檔案通常在Windows計算機上用於匯入和匯出證書和私鑰。
將PFX檔案轉換為PEM格式時,OpenSSL會將所有證書和私鑰放入一個檔案中。您需要在文字編輯器中開啟該檔案,並將每個證書和私鑰(包括BEGIN / END語句)複製到其各自的文字檔案中,並將它們分別儲存為certificate.cer,CACert.cer和privateKey.key。
OpenSSL命令在您的計算機上轉換SSL證書
強烈建議您使用OpenSSL在自己的計算機上轉換為.pfx檔案,以便在那裡保留私鑰。使用以下OpenSSL命令將SSL證書轉換為您自己計算機上的不同格式:
OpenSSL轉換PEM
將PEM轉換為DER
openssl x509 -outform der -in certificate.pem -out certificate.der
將PEM轉換為P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
將PEM轉換為PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
OpenSSL轉換DER
將DER轉換為PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
OpenSSL轉換P7B
將P7B轉換為PEM
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
將P7B轉換為PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
OpenSSL轉換PFX
將PFX轉換為PEM
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
如果需要將Java Keystore檔案轉換為其他格式,通常可以更輕鬆地建立新的私鑰和證書,但可以將Java Keystore轉換為PEM格式。