利用OpenSSL命令进行SSL证书格式转换(Certificates Formats)

文章目录

无论我们是从商家购买的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/

https://csr.chinassl.net/

——

参考原文: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

如何在 JAVA 中进行消息签名并在 GO 中进行验证

原文链接:,发表于 源代码(CodeBeta),转发请注明来源!

发表评论

  • 5 Responses to “利用OpenSSL命令进行SSL证书格式转换(Certificates Formats)”
    • Sakura

      http://blog.csdn.net/linda1000/article/details/8676330

      回复
    • Sakura

      https://segmentfault.com/a/1190000006808275

      回复
    • Sakura

      补充:openssl pkcs8 -nocrypt [-inform DER] -in private.key -out private2.pem

      回复
    • Sakura

      Tony Hoare 曾经说过,你要么把程序写的简单到极点,以至于明显没有错误,要么就把它写的非常复杂,从而没有明显的错误。

      回复
    • Sakura

      cer文件提取公钥:
      openssl x509 -noout -outform PEM -in test_verify_sign.cer -pubkey -out server.pubkey

      回复