1. 程式人生 > >OpenSSL:證書格式的相互轉換, 例如.pem,.crt,.cer,.pfx

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

的副檔名,但它的副檔名通常是.cer所以判斷DER .cer檔案和PEM .cer檔案之間區別的唯一方法是在文字編輯器中開啟它並查詢BEGIN / END語句。所有型別的證書和私鑰都可以用DER格式編碼。DER通常與Java平臺一起使用。SSL轉換器只能將證書轉換為DER格式。如果您需要將私鑰轉換為DER,請使用此頁面上OpenSSL命令

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格式