它是最通用的证书格式,证书颁发机构在发行PEM证书时经常使用.pem,.cer,.crt,和.key作为证书文件后缀。

它是使用base64编码的ASCII字符串,起始包含:"-----BEGIN CERTIFICATE-----" 和 "-----END CERTIFICATE-----"

这几种证书可以使用PEM格式:Server certificates, intermediate certificates, and private keys 。

Apache和其他类似的服务器使用PEM格式的证书。几个PEM证书,甚至是私钥可以一个接一个地放在同一个文件。但有些平台,比如Apache希望各个证书和私钥存放在一个单独的文件中。

DER

它是一个二进制文件,后缀可以是.der或.cer。要区分一个.cer文件是DER还是PEM,只有打开来看有没有BEGIN/END字样。

所有的证书和私钥都可以编码成DER的格式。

DER格式一般用于Java平台。

PKCS#7/P7B

它是一种Base64编码的ASCII文本文件,后缀一般为.p7b或.p7c.

证书中包含:"-----BEGIN PKCS7-----" and "-----END PKCS7-----"

P7B文件只能包含certificates and chain certificates,不能包含私钥。

Windows和Java Tomcat支持这种格式。

PKCS#12/PFX

它是一个二进制文件,后缀为.pfx或.p12

它可以把server certificate, any intermediate certificates, and the private key加密到一个文件中。

它一般用于Windows平台来导入导出证书和私钥。

When converting a PFX file to PEM format, OpenSSL will put all the certificates and the private key into a single file. You will need to open the file in a text editor and copy each certificate and private key (including the BEGIN/END statments) to its own individual text file and save them as certificate.cer, CACert.cer, and privateKey.key respectively.

使用OPENSSL来转换证书:

OpenSSL Convert PEM

Convert PEM to DER

openssl x509 -outform der -in certificate.pem -out certificate.der

Convert PEM to P7B

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

Convert PEM to PFX

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

OpenSSL Convert DER

Convert DER to PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

OpenSSL Convert P7B

Convert P7B to PEM

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

Convert P7B to 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 Convert PFX

Convert PFX to PEM

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

03-15 21:10