温馨提示×

linux openssl怎么转换格式

小樊
50
2026-07-29 09:21:18
栏目: 云计算

下面按常见场景给你总结 Linux 下用 OpenSSL 进行证书/密钥格式转换的方法,基本覆盖 90% 的使用情况。


一、常见格式说明

格式 扩展名 说明
PEM .pem / .crt / .key Base64,最常见
DER .der / .cer 二进制格式
PKCS12 .p12 / .pfx 包含证书 + 私钥
PKCS1 .pem 老 RSA 私钥格式
PKCS8 .pem 新私钥格式(推荐)

二、PEM ↔ DER 互转

PEM → DER

# 证书
openssl x509 -in cert.pem -outform der -out cert.der

# 私钥
openssl rsa -in key.pem -outform der -out key.der

DER → PEM

# 证书
openssl x509 -in cert.der -inform der -out cert.pem

# 私钥
openssl rsa -in key.der -inform der -out key.pem

三、PEM / DER → PKCS12(生成 .pfx)

openssl pkcs12 -export \
  -out cert.pfx \
  -inkey key.pem \
  -in cert.pem \
  -certfile ca.pem   # 可选(中间证书)

会提示输入导出密码。


四、PKCS12 → PEM(最常用)

提取完整信息(证书 + 私钥)

openssl pkcs12 -in cert.pfx -out all.pem -nodes

只提取私钥

openssl pkcs12 -in cert.pfx -nocerts -out key.pem -nodes

只提取证书

openssl pkcs12 -in cert.pfx -nokeys -out cert.pem

-nodes:不加密私钥(不加则会用密码保护)


五、私钥格式转换

PKCS1 → PKCS8

openssl pkcs8 -topk8 -nocrypt -in key_pkcs1.pem -out key_pkcs8.pem

PKCS8 → PKCS1(仅 RSA)

openssl rsa -in key_pkcs8.pem -out key_pkcs1.pem

六、证书 + 私钥 合并成一个 PEM

cat cert.pem key.pem > full.pem

顺序必须是:证书在前,私钥在后


七、查看证书/格式信息

# 查看 PEM 证书
openssl x509 -in cert.pem -text -noout

# 查看 PFX 内容
openssl pkcs12 -in cert.pfx -info

八、常见错误 & 注意

✅ PEM 文件通常包含:

-----BEGIN CERTIFICATE-----

✅ 私钥权限要安全:

chmod 600 key.pem

✅ 如果提示 unable to load private key,多半是格式不匹配(PKCS1 / PKCS8 / DER)


九、快速对照表

需求 命令
PEM → PFX openssl pkcs12 -export
PFX → PEM openssl pkcs12 -in
PEM → DER openssl x509 -outform der
RSA 私钥转换 openssl rsa
查看证书 openssl x509 -text

如果你有具体文件(比如 .pfx.cer.pem),可以直接贴出用途(Nginx / Java / Docker / HTTPS),我可以给你精准命令

0