上传文件
  1. base64hub
  2. 密钥与哈希
  3. PEM 转 DER

PEM 转 DER 转换器(证书和密钥)

粘贴 PEM 块即可下载 .der 文件,或把 DER 复制为单行 Base64 或 hex,用于代码和配置文件。

免费 无需注册,不限次数 本地 不上传任何内容 3 种输出 .der 文件、单行 Base64 或 hex 更新于 2026年10月27日
输入 –DER –输出 –

在你的浏览器中处理。此页面无法将你的数据发送到任何地方: 我们如何确认

如何把 PEM 转为 DER

  1. 把 PEM 块粘贴到输入框,或拖入 .pem、.crt、.key 或 .csr 文件。
  2. 在 转换为 中选择输出:
    • DER:单行 Base64:去掉头尾标记行和换行的 PEM 正文,可以直接放进 JSON 字段或环境变量。
    • DER:hex:同样的字节,以 hex 表示,用于字节数组和协议跟踪。
    • PEM(64 列) 和 公钥(PEM) 用于反向转换和提取公钥。
  3. 点击 下载 .der 保存二进制文件,或按 复制输出 获取文本形式。

转换器能自动识别证书、CSR、CRL、公钥和私钥(PKCS#1、PKCS#8、SEC1 EC),所以不需要选择输入类型。

转换做了什么

PEM 是包在 DER 外面的一层文本。以这个证书为例(已缩短):

-----BEGIN CERTIFICATE-----
MIIBtzCCAV2gAwIBAgIUfX6gOa1S96OttEsj3WbuIdu0cE0wCgYIKoZIzj0EAwIw
...
-----END CERTIFICATE-----

去掉两行标记,把其余各行连起来,做 Base64 解码,就得到了 DER 文件:这里是 443 字节,以 30 82 01 b7 开头,即 ASN.1 SEQUENCE 头部。唯一丢失的信息是标记行中的标签。DER 文件不带标签,所以读取 DER 的工具要么需要被告知文件是什么,要么只能根据结构去猜。

形式这个证书的大小使用场合
PEM656 字节nginx、Apache、HAProxy、大多数 Linux 工具
单行 Base64 DER592 个字符JSON API、JWK 中的 x5c 数组、环境变量
DER(二进制)443 字节Java 和 Windows 工具、固件、application/pkix-cert 下载

哪些地方需要 DER

  • 嵌入式设备和固件:以字节数组形式编译进 C 代码的证书几乎都是 DER。使用 hex 输出,粘贴到数组中。
  • Apple 平台:SecCertificateCreateWithData 接受的是 DER 数据,而不是 PEM 文本。
  • JWK 的 x5c 参数 和 SAML 元数据中的 <ds:X509Certificate> 元素,存放的是不带 PEM 头尾的 Base64 DER。
  • 证书中的 CA Issuers URL 通常提供 DER 格式的 .cer 文件。
  • Windows:.cer 文件两种形式都有可能,但一些较老的导入对话框和设备只接受 DER。

用 OpenSSL、Python 和 certutil 把 PEM 转为 DER

openssl x509 -in cert.pem -outform der -out cert.der
openssl req  -in app.csr  -outform der -out app.der
openssl pkey -in key.pem  -outform der -out key.der
grep -v -- '-----' cert.pem | tr -d '\n'

最后一行会打印单证书文件的单行 Base64 DER。在 Python 中,ssl.PEM_cert_to_DER_cert(open("cert.pem").read()) 返回证书的 DER 字节。在 Windows 上,certutil -decode cert.pem cert.der 会去掉标记并解码。更多内容见 在 OpenSSL 中使用 Base64 和 Python 中的 Base64。

常见问题

  • 一个文件中有多个块:文本输出会转换每一个块,但 下载 .der 只保存第一个对象,因为一个 DER 文件只能容纳一个对象。请先拆分证书链,或在 证书解码器 中从各个证书的卡片下载。
  • -----BEGIN ENCRYPTED PRIVATE KEY-----:可以正常转换,但得到的 DER 仍是加密的。解密需要密码,这里不提供。
  • Proc-Type: 4,ENCRYPTED 头部:旧版 OpenSSL 加密没有对应的 DER 形式。请先用密码运行 openssl pkey -in key.pem -out plain.pem。
  • -----BEGIN OPENSSH PRIVATE KEY-----:它根本不是 ASN.1,所以无法生成 DER。要获取它的公钥,请使用 SSH 密钥工具。

常见问题

PEM 就是 DER 的 Base64 吗?

是的。PEM 文件就是 DER 字节的 Base64 编码,每 64 个字符换行,夹在 -----BEGIN label----- 和 -----END label----- 两行之间。去掉这两行并解码 Base64,就能得到完全相同的 DER 文件。

怎样把 PEM 私钥转为 DER?

粘贴到这里,选择 DER:单行 Base64 或 下载 .der;也可以运行 openssl pkey -in key.pem -outform der -out key.der。密钥永远不会离开页面,其中的机密值也不会显示。

为什么我的 DER 文件比 PEM 小?

Base64 把每 3 个字节变成 4 个字符,PEM 还会加上换行和两行头尾标记。一个 443 字节的 DER 证书会变成 656 字节的 PEM 文件,大约大 48%。