编码加密 · JWT / Token

X.509 证书解析

解析 PEM/DER 证书/链

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 55 次使用
自写 ASN.1/DER 解析 · 浏览器本地解析 · 证书不上传
证书输入PEM / DER · 证书链
拖拽证书文件到此 · 或点击选择 支持 .pem / .crt / .cer / .der(DER 自动识别)
· 全程浏览器本地解析,证书 不上传、不入 URL
· 指纹用 SHA-1 / SHA-256 对证书 DER 求摘要。
解析结果parsed fields
粘贴或拖入证书后点击「解析证书」
颁发者 / 主体 / 有效期 / 公钥 / SAN / 指纹将显示在此
就绪 · 粘贴 PEM 证书或拖入文件
第一节

关于本工具

About

运维排查 SSL 握手失败时,最怕的是证书链不完整或格式混用。PEM 与 DER 混着传、中间证书缺失,浏览器报错却看不出根因。粘贴证书原文或上传文件,工具逐层解析签发者、有效期、公钥算法与签名算法,并标明链中证书的父子关系。解析在服务端完成,不保留任何上传内容。

使用场景

HTTPS 证书过期排查

运维人员接到线上告警,某业务域名 HTTPS 握手失败。用本工具直接粘贴服务器返回的 PEM 公钥,瞬间解析出证书颁发者、有效期起止和签名算法。对比 RFC 5280 标准发现,证书链中二级 CA 的 NotAfter 已超期 3 小时,而叶子证书仍在有效期内。精准定位到中间证书未自动续期,而非应用层证书配置问题,省去逐层 openssl 命令排查的繁琐。

自签证书格式校验

嵌入式工程师用 OpenSSL 生成了一组自签名证书用于设备间 TLS 通信,但生产环境报错 'unable to get local issuer certificate'。将 PEM 文件内容粘贴到解析框,工具立即显示证书序列号、公钥算法(RSA 2048)以及 X.509 v3 扩展中的 Basic Constraints。发现签发者 DN 与主体 DN 完全一致(自签名),但 Key Usage 字段缺失 digitalSignature,导致 OpenSSL 1.1.1 拒绝握手。添加对应扩展后问题解决。

PEM/DER 格式互认

甲方交付的服务器证书是 DER 二进制格式(.cer),而 Nginx 配置要求 PEM 文本格式。用本工具上传 DER 文件,解析结果直接展示其 Subject、Issuer 和 Thumbprint(SHA-256)。确认证书内容无误后,工具自动提供 PEM 格式的等效文本,可直接复制粘贴到 ssl_certificate 配置项,无需额外安装 openssl 或转换脚本,避免手动 base64 编码出错。

证书链完整性验证

安全审计人员收到一份包含根 CA、中间 CA 和叶子证书的 PKCS#7 链文件。将完整链粘贴后,本工具按顺序列出每张证书的序列号、有效期和公钥指纹。发现中间 CA 的 Authority Key Identifier 指向的根 CA 序列号与实际根证书不符——中间 CA 被替换。利用工具输出的 Issuer 哈希值,快速定位到正确的根证书库,确认链被篡改,避免在合规审计中误判。

客户端证书属性核对

企业员工通过双向 TLS 访问内部 OA 系统,某用户反馈无法登录。管理员导出该用户的 .p12 客户端证书,用本工具解析其 Subject DN 中的 CN 字段(用户名)和 SAN(email)。发现 SAN 中的邮箱后缀是旧域名 @oldcorp.com,而服务器端 ACL 只允许 @newcorp.com 后缀。工具直接展示扩展字段,无需加载到浏览器或代码中解码,5 秒内定位到证书属性与策略不匹配。

第二节

使用指南

Getting Started

使用步骤

  1. 1将 PEM 格式(-----BEGIN CERTIFICATE-----)或 DER 格式证书内容粘贴到输入框,支持多证书链
  2. 2点击「解析」按钮,后端 Go 服务解码证书结构,返回序列号、签发者、有效期等字段
  3. 3在结果区查看证书链层级:每个证书按签发顺序排列,根证书标记为「自签名」
  4. 4点选任一证书行,展开其详细字段(签名算法、公钥信息、扩展项),支持复制单个字段值

常见错误对照

1.PEM 格式中混入额外空格或空行

✗ 错误-----BEGIN CERTIFICATE----- MIIBxT... -----END CERTIFICATE-----
✓ 修复-----BEGIN CERTIFICATE----- MIIBxT... -----END CERTIFICATE-----

PEM 的 Base64 正文每行最多 64 字符,但行首/行尾的额外空格会导致 Base64 解码失败。RFC 7468 要求严格按行分隔,无前导/尾随空白。

2.DER 文件以文本方式粘贴,内容被转义

✗ 错误从 Windows 记事本复制 DER 二进制内容(显示为乱码)直接粘贴到输入框
✓ 修复将 DER 文件用 base64 -w0 cert.der 命令编码为单行 PEM 字符串后粘贴;或直接上传 .der 文件

DER 是纯二进制格式,文本粘贴会丢失不可见字节(如 0x00),且可能被浏览器编码破坏。工具输入框设计为接收文本,DER 须先编码。

3.证书链顺序颠倒,根证书放在最前面

✗ 错误-----BEGIN CERTIFICATE----- (根证书) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (中间证书) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (叶子证书) -----END CERTIFICATE-----
✓ 修复-----BEGIN CERTIFICATE----- (叶子证书) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (中间证书) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (根证书) -----END CERTIFICATE-----

RFC 5280 规定证书链顺序应为「叶子 → 中间 → 根」。解析器按此顺序构建信任链,逆序会导致签名验证失败或输出错误路径。

4.PEM 头尾标记大小写或空格错误

✗ 错误-----BEGIN CERTIFICATE ----- MIIBxT... -----END CERTIFICATE-----
✓ 修复-----BEGIN CERTIFICATE----- MIIBxT... -----END CERTIFICATE-----

PEM 标记必须严格为 5 个连字符 + BEGIN/END + 空格 + 类型 + 5 个连字符,中间无额外空格。RFC 7468 定义标记为固定字符串,空格位置错误会导致解析器无法识别。

5.将私钥文件当作证书解析

✗ 错误直接粘贴 -----BEGIN RSA PRIVATE KEY----- 的内容到证书解析工具
✓ 修复确认文件头为 -----BEGIN CERTIFICATE----- 或 -----BEGIN X509 CERTIFICATE-----;私钥应使用专门的私钥解析工具

X.509 证书和私钥虽然都使用 PEM 封装,但 ASN.1 结构完全不同。证书包含公钥、签名、有效期等,私钥仅包含密钥材料,解析器会因 ASN.1 标签不匹配而报错。

6.复制时遗漏了 PEM 的结束标记行

✗ 错误-----BEGIN CERTIFICATE----- MIIBxT... (只复制到 Base64 内容结束,缺少结束标记)
✓ 修复-----BEGIN CERTIFICATE----- MIIBxT... -----END CERTIFICATE-----

PEM 解析依赖成对的 BEGIN/END 标记来界定内容边界。缺少结束标记会导致工具认为输入不完整,无法触发解析流程。

7.使用错误的换行符(CR 而非 CRLF)

✗ 错误在 Linux 上生成 PEM 后,用 Windows 记事本打开并保存,导致每行结尾为 CR+CRLF
✓ 修复使用 dos2unix 或 sed 's/\r$//' 清理换行符;或直接使用工具内置的换行符自动修复功能

RFC 7468 要求 PEM 使用 CRLF 或 LF 换行,但双重 CR(0x0D 0x0D)会被部分解析器视为非法字符,导致 Base64 解码时长度校验失败。

第三节

工作原理

How It Works

核心公式

Modulus = p × q

变量说明

  • pRSA 大素数之一,512–4096 位
  • qRSA 大素数之二,与 p 等长
  • ModulusRSA 公钥模数,n = p×q

示例

解析 2048 位 RSA 证书:p=0xE...1(1024 位)、q=0xF...7(1024 位),Modulus = p×q = 0x...(2048 位),工具输出 Modulus 十六进制串与十进制值,用于验证签名或加密。

粘贴 PEM/DER证书文本或文件解析编码格式Base64→DER→ASN.1拆解 TLV 结构提取各字段值校验签名/有效期输出解析结果字段/指纹/链链式解析递归处理 CA 链
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
PEM 和 DER 文件长什么样?我怎么知道我手里的证书是哪种格式?

PEM 是纯文本格式,文件开头是 `-----BEGIN CERTIFICATE-----`,结尾是 `-----END CERTIFICATE-----`,中间是一长串 Base64 编码的字符,可以用记事本打开看。DER 是二进制格式,用记事本打开会显示乱码。本工具同时支持这两种格式,上传或粘贴时工具会自动识别,不需要手动区分。如果文件后缀是 .crt、.cer、.pem,绝大多数是 PEM;后缀是 .der 或 .cer(二进制)则是 DER。

我把整个证书链(好几个证书拼在一起)粘贴进去,它能一起解析吗?

可以。本工具支持解析完整的证书链(PEM 格式下多个 `-----BEGIN CERTIFICATE-----` 块拼接在一起)。工具会依次解析每个证书,并在结果区按顺序列出每张证书的信息,同时标注每张证书在链中的位置(第 1 张是叶子证书,第 2 张是中间 CA,最后是根 CA)。但请注意:DER 格式不支持链,一张 DER 文件只能包含一张证书。

解析结果里有个“序列号”是干什么用的?跟证书指纹一样吗?

不一样。序列号是 CA(证书颁发机构)在签发证书时分配给这张证书的唯一编号,类似于身份证号,在同一个 CA 下不会重复。证书指纹(SHA-1 或 SHA-256 哈希值)是整张证书内容的数字摘要,用于快速比对证书是否被篡改。序列号通常用于吊销查询(CRL 或 OCSP),而指纹用于本地校验。结果区里这两项会分开显示,请勿混淆。

为什么我解析出来的证书有效期显示“1970 年”或者“2038 年”?

这通常是因为证书的 `notBefore` 或 `notAfter` 字段是一个异常值(比如 0 或 2^31-1)。Unix 时间戳为 0 对应 1970-01-01,最大 32 位有符号整数(2147483647)对应 2038-01-19。出现这种情况,说明这张证书的签发或过期时间被错误地写入了占位符或极限值,证书本身大概率是无效或测试用的。本工具忠实显示原始字段值,不会自动修正。

解析出来的“颁发者”和“主体”为什么有些字段我看不懂,比如 CN、O、OU 是什么意思?

这些是 X.509 证书 DN(Distinguished Name,专有名称)里的标准字段缩写:CN = Common Name(通用名称,通常是域名或个人姓名),O = Organization(组织名,公司或机构),OU = Organizational Unit(部门,如 IT 部或财务部),C = Country(国家代码,如 CN 是中国),L = Locality(城市),ST = State/Province(省/州)。工具在解析结果里会同时显示缩写和对应的值,方便对照。

这个工具解析证书时,会把我的证书内容上传到服务器吗?我有点担心隐私。

本工具是 BE(后端处理)实现,意味着你粘贴或上传的证书内容会通过网络发送到服务器进行解析。解析完成后,服务器不会持久化存储你的证书文件,处理结果返回后原始数据即被丢弃。但如果你处理的是包含敏感信息的私钥(虽然私钥通常不应该被解析工具处理),或者对数据保密有极高要求,建议在本地使用 OpenSSL 命令进行解析。

解析结果里的“签名算法”和“公钥算法”有什么区别?为什么经常不一样?

这是两个完全不同的步骤。公钥算法(如 RSA、ECDSA)决定了证书里公钥的数学类型和密钥长度(比如 RSA 2048 位)。签名算法(如 sha256WithRSAEncryption)是 CA 在签发证书时,用它的私钥对证书内容进行签名的算法。简单说:公钥算法是你的证书自己的加密能力,签名算法是 CA 盖章用的方法。两者可以不同,比如一张 ECDSA 公钥的证书,可以被一个 RSA 的 CA 用 sha256WithRSA 签名。

我粘贴了一个 PEM 证书,但提示“解析失败,不是有效的证书格式”,可能是什么原因?

最常见的原因有三个:第一,粘贴的内容包含了多余的空行、空格或换行符,请确保只粘贴 `-----BEGIN CERTIFICATE-----` 到 `-----END CERTIFICATE-----` 之间的完整内容。第二,证书本身已损坏或被截断,检查文件大小是否正常。第三,你粘贴的可能是私钥(`-----BEGIN RSA PRIVATE KEY-----`)或证书签名请求(`-----BEGIN CERTIFICATE REQUEST-----`),这三种格式开头标记不同,本工具只解析证书。请确认开头标记正确。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭