无论我们是从商家购买的SSL证书,还是自己免费获取的证书,如果需要部署到面板、服务器WEB环境中,可能对应的格式要求不一样的。比如一个网友在魔门云CDN部署SSL证书的时候,因为其只能支持PEM格式的证书,这就需要将原有可能不是的证书转换格式。
转换格式方式也有很多种,最为简单直接的办法直接用Linux自带的OpenSSL软件直接转换,整理老左准备通过这篇文章将常用格式转换(Certificates Formats)方式记录下来。
我们在准备转换格式之前,需要找一台Linux VPS,且已经安装OpenSSL软件的,如果没有安装,我们自行安装。
第一、PEM 转 PKCS7
openssl crl2pkcs7 -nocrl -certfile your_pem_certificate.crt -out your_pkcs7_certificate.p7b
第二、PKCS7 转 PEM
openssl pkcs7 -print_certs -in your_pkcs7_certificate.p7b -out your_pem_certificates.pem
第三、PEM 转 PFX
openssl pkcs12 -export -out your_pfx_certificate.pfx -inkey laozuo.key -in laozuo.crt
其中需要给PFX设置两次密码,密码要记住的,回头导入到项目需要输入。
第四、PFX 转 PEM
openssl pkcs12 -in your_pfx_certificate.pfx -out your_pem_certificates_and_key.pem -nodes
其中需要提示我们输入PFX证书的密码才可以转。
第五、PKCS7 转 PFX
PKCS7不可以直接转换成PFX,我们需要通过上面的方法先将PKCS7转成PEM,然后PEM转PFX。
openssl pkcs7 -print_certs -in your_pkcs7_certificate.p7b -out your_pem_certificates.pem
openssl pkcs12 -export -out your_pfx_certificate.pfx -inkey your_private.key -in your_pem_certificate.crt
总结,在转换SSL证书格式的时候,我们需要将以有的证书格式丢到执行openssl转换命令当前目录,且文件名需要对应。
—————
在线工具:
https://www.yunaq.com/tools/certificate_composing/
——
参考原文:http://www.laozuo.org/10920.html
——
OpenSSL实现RSA密钥pkcs1与pkcs8格式转换
https://blog.csdn.net/six66hao/article/details/81814576
如何生成支付宝RSA密钥
https://blog.csdn.net/cgtcsdn/article/details/52693119
http://blog.csdn.net/linda1000/article/details/8676330
https://segmentfault.com/a/1190000006808275
补充:openssl pkcs8 -nocrypt [-inform DER] -in private.key -out private2.pem
Tony Hoare 曾经说过,你要么把程序写的简单到极点,以至于明显没有错误,要么就把它写的非常复杂,从而没有明显的错误。
cer文件提取公钥:
openssl x509 -noout -outform PEM -in test_verify_sign.cer -pubkey -out server.pubkey