首页/安全/加密与证书速查/证书格式转换速查(PEM/DER/PFX)

证书格式转换速查(PEM/DER/PFX)

三类高频转换:PEM 与 DER 互转、PFX 与 PEM 互转、链与私钥的组合拆解;转换只改变编码与封装,不改变证书内容与私钥本身。

加密与证书速查安全更新于 2026-10-13

证书格式转换速查

证书格式转换集中在三类高频操作:PEM 与 DER 互转、PFX 与 PEM 互转,以及链与私钥的组合拆解。需要牢记的是转换只改变编码与封装方式,不改变证书内容与私钥本身,因此转换前后做一次指纹比对就能确认没有拿错文件。转换失败基本都源于格式判断错误或参数方向写反。

基本信息

PEM 转 DERopenssl x509 -in a.pem -outform DER -out a.der
DER 转 PEMopenssl x509 -inform DER -in a.der -out a.pem
PEM 转 PFXopenssl pkcs12 -export -out a.p12 -inkey key.pem -in a.pem -certfile chain.pem
PFX 转 PEMopenssl pkcs12 -in a.p12 -nodes -out a-all.pem,内容混排需要分段拆分
校验手段SHA-256 指纹比对
私钥转换使用 openssl pkey,转换后仍属敏感文件

典型使用场景

  • 对接不同平台:把 CA 下发的格式转成目标系统要求的格式
  • 迁移到 Java 环境:把 PEM 证书与私钥打包成 PKCS#12
  • 从 Windows 导出:把 .pfx 拆成 PEM 供 Linux 服务引用
  • 转换后核对:用指纹确认内容未发生变化
  • 排查导入失败:先确认格式与参数方向,再重试

转换后核对指纹一致

转换后核对指纹一致
# 转换前记录指纹
openssl x509 -in a.pem -noout -fingerprint -sha256
# 转换后再次计算,两者必须完全一致
openssl x509 -inform DER -in a.der -noout -fingerprint -sha256
# 私钥转 PEM 并核对
openssl pkey -in a.key -out a-pem.key
# PFX 拆出的文件包含多段内容,需按 BEGIN 标记分段保存

常见转换与易错点

转换方向命令要点易错点
PEM 到 DER-outform DER忘记指定输出格式
DER 到 PEM-inform DER输入格式判断错误
PEM 到 PFXpkcs12 -export 带 -inkey漏掉中间链
PFX 到 PEM-nodes 导出私钥输出混排未拆分
转换前后用 SHA-256 指纹比对,可以确认没有拿错文件或发生内容变化。
pkcs12 拆出的文件同时含私钥与多张证书,直接当证书文件使用会导致解析失败或链顺序错误,必须按 BEGIN 标记拆分。
参数方向最容易写反:-inform 描述输入、-outform 描述输出,混用后会得到报错,或一个看似正常但内容错误的文件,所以转换后一定要复核。
转换只是搬运:私钥本身不会因为换了容器而变得更安全,拆出来的 PEM、打包后的 PFX 都要按密钥标准设置权限与备份策略。
批量转换前先备份原始文件:一次写坏再回头找 CA 重新下发,往往比备份多花十几分钟代价高得多。

易错点

  • 把 pkcs12 的整段输出直接当证书文件使用(内含私钥与多张证书,需要拆分)
  • 转换时误用 -nocerts 或 -nokeys 造成内容缺失而未察觉
  • -inform 与 -outform 用反,产出看似正常但内容错误的文件
  • 转换后不做指纹比对,拿错文件也难以发现
  • 拆解出的 PEM 私钥未限制权限,随手放在共享目录

数据来源与参考

  • RFC 7468(PEM)
  • RFC 7292(PKCS#12)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌