简单解释一下证书的几种格式:
1.带有私钥的证书
由Public Key Cryptography Standards #12(公钥加密技术12号标准),PKCS#12标准定义,包含了公钥和私钥的二进制形式的证书,以pfx作为证书文件的后缀名。
2.二进制编码的证书
证书中没有私钥,DER编码二进制格式的证书文件,以cer作为证书文件后缀名。
3.Base64编码的证书
证书中没有私钥,BASE64编码格式的证书文件,也是以cer作为证书文件后缀名。
.pfx证书格式转转.key和.crt文件的方法:
以下以Linux系统为例(当然如果Windows上安装了openssl命令,可以正常是使用的话也可以):
在Linux下执行如下命令:
(1)将.pfx格式的证书转换为.pem文件格式:
openssl pkcs12 -in xxx.pfx -nodes -out server.pem
(2)从.pem文件中导出私钥server.key:
openssl rsa -in server.pem -out server.key
(3)从.pem文件中导出证书server.crt
openssl x509 -in server.pem -out server.crt
其他格式转换
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