千家信息网

利用Openssl进行SSL证书格式转换

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,各类证书由于存储的内容不同(如是否包含公钥/私钥是否加密存储/单一证书或多证书等)、采用编码不同(DER/BASE64)、标准不同(如PEM/PKCS),所以尽管X.509标准规定了证书内容规范,但证
千家信息网最后更新 2025年12月02日利用Openssl进行SSL证书格式转换

各类证书由于存储的内容不同(如是否包含公钥/私钥是否加密存储/单一证书或多证书等)、采用编码不同(DER/BASE64)、标准不同(如PEM/PKCS),所以尽管X.509标准规定了证书内容规范,但证书文件还是五花八门。

在实际应用中经常会要求进行证书格式转化,比如在配置VMware Operation Manager 和Identity Manager等Linux场景下的证书服务器时要求使用的是PEM编码格式的证书,但是很多人手上只有CER格式的证书。好在openssl对这些不同的标准都有着不错的支持,可以用来进行不同格式证书的转换。本文章将会以Identity Manager场景下的SSL格式转换为例进行演示讲解

证书导出

本环境中将会有企业内的CA证书颁发机构为其进行证书颁发,所以获取的证书格式为Windows易于识别的Cer或者pfx格式。首先我们将该证书导出

对于本环境的Identity Manager需要用到私钥,故此选择导出私钥

注:一般情况下需要用到pem格式的证书都需要导出和识别证书

勾选导出私钥后,文件格式只能选择pfx

设置密码

选择导出路径

导出完成

同时我们也要导出企业的根证书颁发机构的证书进行导出

根证书选择不导出私钥。注:将根证书颁发机构的证书导出是一件很危险的事情

证书格式我们选择"base64编码"

导出完成

至此我们已经获得一个服务器证书以及一个对应的根证书颁发机构的证书,接下来就可以通过openssl进行证书格式转换。

证书格式转换

在安装openssl前,请先在系统中安装 Microsoft Visual C++ 2008 Redistributable Package (x86)。要下载软件包,(下载地址:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=29)

下载适用于OpenSSL x86 的 Shining Light Productions 安装程序,,下载网址为 Shining Light Productions。这是 OpenSSL Project 开发的软件。下载完成后点击安装,默认情况下其会安装在C盘根目录

通过cmd进入安装目录的bin目录

首先将pfx格式转换为pem格式

并通过以下命令将上述导出的证书转换成pem格式(不含私钥)

openssl pkcs12 -in c:\idm.pfx -clcerts -nokeys -out c:\idm.pem

(上述命令就是通过openssl将idm.pfx这个pkcs12格式的证书转换成pem格式,其中-nokeys为指定如无需导出私钥,命令中需要根据自己情况制定具体的证书位置)

接着通过命令将私钥也转换成pem格式,并且在转换输出过程中要求输入密码

openssl pkcs12 -in c:\idm.pfx -nocerts -out c:\idm.key.pem

(-nocerts为控制不转换证书 只转换私钥)

最后再通过命令将这个pem格式的私钥转换成rsa

打开C盘 可以看到其已经生成一个pem格式的证书以及pem格式的私钥

最后也要将根证书转换成pem格式

也就是实现从CER格式转化为PEM的过程命令如下

openssl.exe x509 -in c:\rootca.cer -out c:\rootca.pem


当然openssl除了可以实现pfx以及Cer向pem格式转换外, 还支持很多其他格式的转换,基本参考如下:

  • PEM--DER/CER(BASE64--DER编码的转换)

openssl x509 -outform der -in certificate.pem -out certificate.der

  • EM--P7B(PEM--PKCS#7)

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer

  • PEM--PFX(PEM--PKCS#12)

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

  • PEM--p12(PEM--PKCS#12)

openssl pkcs12 -export -out Cert.p12 -in Cert.pem -inkey key.pem

  • CER/DER--PEM(编码DER--BASE64)

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

  • P7B--PEM(PKCS#7--PEM)

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

  • P7B--PFX(PKCS#7--PKCS#12)

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/p12--PEM(PKCS#12--PEM)

openssl pkcs12 -in certificate.pfx -out certificate.cer
如无需加密pem中私钥,可以添加选项-nodes;如无需导出私钥,可以添加选项-nokeys;

  • PEM BASE64--X.509文本格式

openssl x509 -in Key.pem -text -out Cert.pem

  • PFX文件中提取私钥(.key)

openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key

  • PEM--SPC

openssl crl2pkcs7 -nocrl -certfile venus.pem -outform DER -out venus.spc

  • PEM--PVK(openssl 1.x开始支持)

openssl rsa -in mycert.pem -outform PVK -pvk-strong -out mypvk.pvk

  • PEM--PVK(对于openssl 1.x之前的版本,可以下载PVK转换器通过以下命令完成)

pvk -in ca.key -out ca.pvk -nocrypt -topvk

证书 格式 命令 不同 编码 选择 机构 情况 文件 标准 目录 支持 企业 内容 场景 密码 服务器 环境 软件 过程 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全管理和工程师 app网络安全管理制度模板 网上购物系统数据库模式定义 崇明区机械软件开发服务生产厂家 文字处理有用到数据库技术吗 中兴接入网网管数据库安装说明 数据库表的最大长度 服务器cpu睿频是什么意思 网络安全学习的软件有哪些 怎样把项目部署到服务器并跑起来 阿里云服务器缓存故障的原因 实况足球数据库为什么用不了 曙光服务器如何装linux 永劫无间服务器维护可以更新吗 盘州软件开发外包公司 湖北朗涯互联网科技有限公司 阿勒泰网络技术参考价格 万方智搜的合作数据库 100周年网络安全工作总结报告 数据库原理章节介绍 北京广厦网络技术股... 宁阳手机app软件开发 嘉兴租房软件开发 软件开发详细说明书模板 科技改变生活互联网大会 新洲区海航网络安全维护介绍 通信网络安全法第七十四条 徐州信息软件开发供应商 张家界网络安全会议 如何在服务器管理添加服务
0