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

DER 转 PEM 转换器,支持 .cer 和 .der 文件

拖入二进制 .cer 或 .der 文件,或粘贴来自 JWK 或 SAML 元数据的 Base64 DER,即可得到带有正确 -----BEGIN …----- 标签的 PEM 块。

免费 无需注册,不限次数 本地 不上传任何内容 标签 根据 ASN.1 结构识别 更新于 2026年10月27日
输入 –DER –输出 –

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

如何将 DER 转换为 PEM

  1. 把 .der、.cer 或 .crt 文件拖到框中。二进制输入会按字节读取。除了文件,你也可以粘贴单行 Base64 DER,或 30 82 01 b7 … 这样的 hex。
  2. 转换为 保持 PEM(64 列)。
  3. PEM 标签 保持 自动检测。转换器会读取 ASN.1,并写出 CERTIFICATE、CERTIFICATE REQUEST、PUBLIC KEY、PRIVATE KEY 等标签。只有当某个工具坚持要特定标签时,才需要自己选择。
  4. 如有需要,勾选 Windows 换行符(CRLF),然后点击 复制输出 或 下载 .pem。

切换到 检查 可以核对转换的内容:主体、到期时间和指纹都在卡片上。

DER 文件和不带头尾行的 Base64 从哪里来

来源得到的内容
Windows 证书导出,选择“DER 编码二进制 X.509 (.CER)”二进制 DER
不带 -rfc 的 Java keytool -exportcert二进制 DER
证书中的 CA 颁发者 URL(AIA 扩展)通常是 DER 格式的 .cer
JWK 或 JWKS 中的 x5c每张证书一行 Base64 DER
SAML 元数据中的 <ds:X509Certificate>Base64 DER,有时带换行
抓包工具、HSM 和智能卡工具hex 转储

这些最终都会变成同样的 PEM。一张 443 字节的 DER 证书会变成 656 字节的 PEM:分成十行的 592 个 Base64 字符,加上 BEGIN 和 END 两行。

PEM 格式简介

RFC 7468 描述了解析器所期望的格式,输出也遵循它:

-----BEGIN CERTIFICATE-----
MIIBtzCCAV2gAwIBAgIUfX6gOa1S96OttEsj3WbuIdu0cE0wCgYIKoZIzj0EAwIw
...64 characters per line, the last line shorter...
-----END CERTIFICATE-----
  • BEGIN 和 END 中的标签必须完全一致。
  • 正文每行是 64 个带 = 填充的标准 Base64 字符。使用 URL 安全字母表(- 和 _)或不带填充的输入也能接受,并会以标准形式写出。
  • 一个文件中的多张证书就是把各个块连在一起。fullchain.pem 和 CA 证书包就是这样构成的。要自己制作,先逐一转换每张 DER 证书,再把这些块依次粘贴在一起,叶子证书在前。

用 OpenSSL、Python 和 shell 将 DER 转为 PEM

openssl x509 -inform der -in cert.cer -out cert.pem
openssl pkey -inform der -in key.der -out key.pem
openssl req  -inform der -in app.der -out app.csr

如果忘了加 -inform der,较旧的 OpenSSL 版本会报 unable to load certificate;新版本能自己识别 DER。对于 x5c 条目这样的单行 Base64 字符串:

{ echo '-----BEGIN CERTIFICATE-----'; echo "$B64" | fold -w 64; echo '-----END CERTIFICATE-----'; } > cert.pem

Python 内置了这个功能:ssl.DER_cert_to_PEM_cert(open("cert.der", "rb").read())。更多用法见 OpenSSL 和 Python 页面。

常见问题

  • “既不是 PEM,也不是有效的 Base64 DER” 或 “第 … 字节处不是有效的 DER/ASN.1”:Base64 已损坏、被截断,或者不是 DER。.p12 或 .pfx 文件也是 DER,但其内容是加密的,请改用 openssl pkcs12 转换。
  • 标签显示为 DATA:该结构没有被识别为证书、密钥或请求。字节仍然会被转换;如果你知道它是什么,请自己设置标签。
  • 文件本来就是 PEM:有些 .cer 文件虽然用了这个扩展名,内容却是 PEM。这时输出的是重新换行的同一张证书,无需再做其他转换。证书解码器 可以显示其中的内容。
  • 需要反向转换:PEM 转 DER 可以下载 .der,或输出单行 Base64 或 hex。

常见问题

怎么判断我的 .cer 文件是 DER 还是 PEM?

用文本编辑器打开它。能看到可读的 -----BEGIN CERTIFICATE----- 文本就是 PEM;看到无法阅读的二进制内容就是 DER,它的第一个字节是 0x30。在 Linux 和 macOS 上,file 命令会分别输出 PEM certificate 或 Certificate, Version=3。

怎么把 SAML 元数据中的 X509Certificate 值转成 PEM 文件?

把 <ds:X509Certificate> 中的 Base64 文本粘贴到框中。它是不带头尾行的 DER,转换器会加上 -----BEGIN CERTIFICATE-----,按 64 个字符换行,并补上结束行。

能在这里把 DER 私钥转换为 PEM 吗?

能。PKCS#8、PKCS#1 RSA 和 SEC1 EC 密钥都能被识别,并使用对应的标签,例如 PRIVATE KEY 或 EC PRIVATE KEY。转换在本地进行,页面上不会显示密钥的值。

什么时候需要勾选 Windows 换行符(CRLF)?

只有当某个 Windows 工具或严格的解析器拒绝该文件时才需要。大多数软件两种都接受,RFC 7468 也允许 PEM 使用任意一种换行符。