证书格式转换

PEM, DER, P7B/PKCS#7, PFX/PKCS#12格式之间如何转换

不同平台,不同设备需要的证书格式不同,例如Windows服务器使用.pfx文件,Apache服务器使用crt cer文件.

PEM Format
最常用的证书格式,文件中包含 ‘—–BEGIN CERTIFICATE—–” 和 “—–END CERTIFICATE—–” 字符串
一个文件可以包含几个PEM证书或者私钥.

ASCII文件使用Base64编码
常用后缀为 .pem, .crt, .cer, .key
Apache 使用 PEM 证书

DER Format
ASCII PEM 格式证书的二进制版本.

二进制文件
扩展名 .cer & .der
DER 一般用于java平台

P7B/PKCS#7
包含 “—–BEGIN PKCS—–” & “—–END PKCS7—–” .不含私钥,可以包含证书链.

Base64 编码
扩展名 .p7b, .p7c
几个平台支持. 例如:- Windows OS, Java Tomcat

PFX/PKCS#12
用于存储服务器证书,公钥和私钥都包含,而且加密.

二进制文件
扩展名 .pfx, .p12
Windows平台

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

DER
\DER 转换 PEM

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

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

PFX
PFX 转换 PEM

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

推荐阅读更多精彩内容