证书解码器

解码 PEM 格式的 X.509 SSL/TLS 证书。所有处理在浏览器中完成。

PEM格式支持 详细信息 客户端处理

如何使用证书解码器

1

粘贴证书

粘贴 PEM 格式的证书,包含 BEGIN/END 标记。

2

解码

工具将解析证书的各个字段。

3

查看信息

查看证书的主题、颁发者、有效期和扩展信息。

什么是 X.509 证书?

X.509 证书是一种数字证书标准,用于 TLS/SSL 加密通信中验证服务器身份。证书包含公钥、持有者信息和数字签名。

SSL/TLS 证书

X.509 证书是 HTTPS 的基础,验证服务器身份并实现加密通信

公钥基础设施

X.509 定义了 PKI 中使用的公钥证书格式,将身份与加密密钥绑定

ASN.1/DER 编码

证书使用 ASN.1 区分编码规则 (DER) 作为二进制结构,并封装为 PEM Base64 用于文本传输

PEM、DER、CRT、PFX —— 证书格式对比

同一份 X.509 证书可以存成多种文件格式。弄清手头是哪种能省不少时间——下面是区分方法:

格式 扩展名 编码方式 典型用途
PEM .pem, .crt, .cer 带 BEGIN/END 头的 Base64 ASCII 文本 Web 服务器(Nginx、Apache)和大多数 Linux 工具——本工具解码的格式
DER .der, .cer 原始二进制 ASN.1 Java 密钥库、部分 Windows 和嵌入式工具
P7B / PKCS#7 .p7b, .p7c Base64 ASCII,仅含证书(不含私钥) Windows 证书链导入、IIS
PFX / PKCS#12 .pfx, .p12 二进制,带密码保护,可包含私钥 Windows 导入/导出、IIS、代码签名打包

快速判断:用文本编辑器打开文件,看到 -----BEGIN CERTIFICATE----- 就是 PEM;如果是一堆二进制乱码,则是 DER 或 PFX。

常用 OpenSSL 命令

更喜欢命令行?这些 OpenSSL 命令可以实现本工具的功能——解码、查看有效期、计算证书指纹:

openssl x509 -in cert.pem -text -noout

解码并显示证书的全部字段

openssl x509 -in cert.pem -noout -dates

只显示有效期(notBefore / notAfter)

openssl x509 -in cert.pem -noout -fingerprint -sha256

打印 SHA-256 指纹

openssl x509 -in cert.der -inform DER -text -noout

解码二进制 DER 证书

openssl x509 -in cert.pem -noout -subject -issuer

只显示 Subject 和 Issuer

openssl s_client -connect example.com:443 -showcerts

从线上服务器抓取证书链

证书字段参考

每个解码字段的含义及其重要性:

Subject(使用者)

证书颁发给的实体身份。常见组成:CN(通用名称)、O(组织)、C(国家)。

Issuer(颁发者)

签署该证书的证书颁发机构(CA)。若 Subject 与 Issuer 相同,则该证书是自签名证书。

Serial Number(序列号)

由颁发 CA 分配的唯一编号,用于检查吊销状态(CRL / OCSP)。

Validity(有效期:Not Before / Not After)

证书有效的时间窗口。超出该窗口,浏览器和客户端会拒绝它。

Public Key & Key Size(公钥与密钥长度)

与身份绑定的公钥。当前规范是 2048 位 RSA 或 256 位 EC;1024 位 RSA 已弃用。

Subject Alternative Names(SAN,使用者可选名称)

证书覆盖的主机名和 IP 列表。自 2015 年起浏览器按 SAN 而非 CN 匹配——example.com 的证书必须显式列出 www.example.com,否则校验不通过。

Signature Algorithm(签名算法)

CA 签署证书所用算法。要求 SHA-256 及以上;现代浏览器拒绝 SHA-1 签名。

Fingerprint(SHA-256 指纹)

整份 DER 编码证书的哈希值,用于证书固定(pinning)和跨系统比对证书。

常见问题

如何获取网站的证书?

在浏览器中点击地址栏的锁图标,可以查看和导出网站的 SSL 证书。

PEM 格式是什么样的?

PEM 格式以 -----BEGIN CERTIFICATE----- 开头,以 -----END CERTIFICATE----- 结尾,中间是 Base64 编码的数据。

能解码证书链吗?

目前只支持解码单个证书。对于证书链,请分别解码每个证书。

PEM、DER、CRT 和 PFX 有什么区别?

PEM 是带 BEGIN/END 头的 Base64 文本(扩展名 .pem、.crt、.cer)。DER 是同样数据的原始二进制 ASN.1 形式。CRT 和 CER 只是扩展名,内容既可以是 PEM 也可以是 DER。PFX/PKCS#12 是带密码保护的二进制打包,可包含私钥,主要用于 Windows。

为什么证书能正常解码,浏览器却提示无效?

解码和校验是两回事。证书可以完美解析,但校验失败的原因可能是:已过期、主机名不在 SAN 列表中、证书链不通向受信任的根 CA、或已被吊销。本工具展示解码后的字段——建议先检查有效期和 SAN。

把 SSL 证书粘贴到这个工具里安全吗?

安全。SSL 证书是公开信息——每个访问你网站的人都会收到它,其中不含任何机密。但切勿在任何地方粘贴私钥:本工具不需要也无法使用私钥。

证书链中应包含哪些证书?链的长度应该是多少?

服务器下发的证书链应包含叶子证书,以及将其连接到受信任根证书的中间 CA——通常总共 2-3 张证书。根证书本身不应被发送:客户端的信任库中已经持有根证书。缺少中间证书是“浏览器中正常、移动端却失败”这类 TLS 错误最常见的原因,因为有些客户端会缓存或猜测中间证书,而另一些则不会。

如何在有效期和 SAN 引发故障之前提前检查?

解码证书并查看有效期块:notBefore 是签发日期,notAfter 是到期日期——请在 notAfter 之前至少 30 天安排续期。SAN(Subject Alternative Names,主题备用名称)列出了证书覆盖的每一个主机名;即使 CN 匹配,该列表中缺失的名称仍会在浏览器中引发证书名称错误。本工具可就地解码并显示这两个字段。

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}