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