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
网友评论