温馨提示×

linux openssl如何转换格式

小樊
38
2026-07-15 01:08:17
栏目: 云计算

在 Linux 下使用 OpenSSL 转换证书/密钥格式是非常常见的操作。下面按常见场景给你一份速查表(从 → 到)。


一、PEM、DER、PKCS12 常见格式说明

格式 说明
PEM Base64 文本,常见 .pem.crt.key
DER 二进制格式,常见 .der.cer
PKCS12 包含证书 + 私钥,常见 .p12.pfx
PKCS8 私钥格式(常用于 Java)

二、证书格式转换

1️⃣ PEM → DER

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

2️⃣ DER → PEM

openssl x509 -in cert.der -inform der -out cert.pem

三、私钥格式转换

3️⃣ PEM → DER

openssl rsa -in key.pem -outform der -out key.der

4️⃣ DER → PEM

openssl rsa -in key.der -inform der -out key.pem

四、PKCS12(.p12 / .pfx)相关转换

5️⃣ PEM(证书+私钥)→ PKCS12

openssl pkcs12 -export \
  -in cert.pem \
  -inkey key.pem \
  -out cert.p12 \
  -name alias_name

会提示输入导出密码


6️⃣ PKCS12 → PEM(证书 + 私钥)

openssl pkcs12 -in cert.p12 -out cert.pem -nodes

只导出证书:

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

只导出私钥:

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

五、私钥格式(PKCS1 ↔ PKCS8)

7️⃣ PKCS1(传统 RSA)→ PKCS8

openssl pkcs8 -topk8 -nocrypt -in rsa_key.pem -out pkcs8_key.pem

8️⃣ PKCS8 → PKCS1

openssl rsa -in pkcs8_key.pem -out rsa_key.pem

六、查看证书/私钥信息

查看证书内容

openssl x509 -in cert.pem -text -noout

查看私钥信息

openssl rsa -in key.pem -text -noout

七、常见错误 & 注意事项

✅ PEM 文件通常以:

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

-----BEGIN PRIVATE KEY-----

❌ 如果提示:

unable to load certificate

通常是 格式不匹配(PEM/ DER 搞错)


八、快速对照表

转换 命令
PEM → DER openssl x509 -in a.pem -outform der -out a.der
DER → PEM openssl x509 -in a.der -inform der -out a.pem
PEM → P12 openssl pkcs12 -export -in cert.pem -inkey key.pem -out a.p12
P12 → PEM openssl pkcs12 -in a.p12 -out a.pem -nodes

如果你能告诉我:

  • ✅ 原始格式(.pem / .p12 / .der
  • ✅ 目标格式
  • ✅ 是否包含私钥

我可以给你一条精确命令

0