SSL 证书解析工具 — 读取 PEM、CRT 和 CSR 文件

粘贴 PEM 证书、证书链或 CSR,或上传 .crt 文件,查看 SAN、过期时间、颁发者、密钥类型和指纹。在浏览器中解析。

只需要证书和 CSR。切勿把私钥粘贴到任何网站;如果在这里粘贴了,它会被忽略。

正在加载解码器…

完全在你的浏览器中运行。证书在本地解码;不会上传任何内容,也不会进行 OCSP 或 CT 查询。 浏览全部免费工具.

发现问题,或者觉得哪里可以更好?每条消息我们都会阅读,并尽快修复。

这款免费的 SSL 证书解析工具可以读取 X.509 证书并显示其中的内容:它覆盖的域名(主体备用名称)、颁发者、过期时间和剩余天数、密钥类型和长度、各项扩展,以及 SHA-256 和 SHA-1 指纹。你可以粘贴 PEM 文本、fullchain.pem 中的完整证书链,或者在发给 CA 之前粘贴证书签名请求(CSR)。也可以上传 .crt、.cer、.der 和 .pem 文件。

解析在你的浏览器中进行;不上传任何内容,也不进行任何网络查询。这也意味着本工具报告的是证书写了什么,而不是它是否受信任:它不验证签名,不检查吊销状态(OCSP 或 CRL),也不查询证书透明度日志。对于证书链,它会检查每张证书的颁发者名称是否与下一张证书的主体相符,从而发现最常见的顺序错误。与许多只能处理 RSA 的 JavaScript 解析器不同,它能读取 RSA、ECDSA 和 Ed25519 证书。

使用方法

  1. 粘贴以 -----BEGIN CERTIFICATE----- 开头的证书(可以是多张),或以 -----BEGIN CERTIFICATE REQUEST----- 开头的 CSR。也可以点击“上传”选择 .crt、.cer、.der 或 .pem 文件。
  2. 查看每张证书上的彩色状态行:有效并显示剩余天数、即将过期(少于 30 天)、已过期或尚未生效。
  3. 确认主体备用名称中列出了证书必须覆盖的每个主机名。浏览器会忽略通用名称(CN)。
  4. 对于证书链,查看“证书链顺序”框:服务器证书应排在最前面,然后依次是各级颁发者。
  5. 用证书卡片上的按钮复制指纹或单张证书的 PEM。

常见问题

如何查看 SSL 证书的过期时间?

把证书粘贴到这里,查看“有效期至”一行及其上方显示剩余天数的状态。要获取线上网站正在使用的证书,可运行 openssl s_client -connect example.com:443 -servername example.com -showcerts,或者在浏览器中点击锁形图标(或网站设置图标),打开证书查看器并导出。也可以在命令行中用 openssl x509 -in cert.pem -noout -enddate 查看。

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

PEM 和 DER 是编码方式;CRT 和 CER 只是文件扩展名。DER 是证书的二进制形式。PEM 是同样的字节经过 Base64 编码后,放在 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 两行之间,一个 PEM 文件可以包含多张证书。.crt 或 .cer 文件可以是任意一种编码(Windows 中的 .cer 通常指 DER)。本解析器两种都支持。

什么是主体备用名称(SAN)?

SAN 扩展列出了证书适用的所有主机名和 IP 地址,例如 example.com、www.example.com 和 *.example.com。浏览器只检查这个列表;自 Chrome 58(2017 年)起,主体中的通用名称已被忽略。即使通用名称正确,没有匹配 SAN 的证书也会因名称不匹配而报错。

什么是证书指纹?

对 DER 形式的整张证书计算出的哈希值,以十六进制显示。它唯一标识一张确切的证书:哪怕只有一个字节不同,指纹也会改变。SHA-256 指纹是现代标准;一些工具和旧系统仍会显示 SHA-1 指纹。指纹不是机密。这里显示的 SPKI pin 则不同:它只对公钥计算哈希,所以用同一密钥续期证书时它保持不变。

SSL 证书最长可以有效多久?

对于公开受信任的 TLS 证书,CA/浏览器论坛自 2020 年 9 月起的上限是 398 天。SC-081 投票决议将分阶段缩短这一上限:2026 年 3 月 15 日起签发的证书为 200 天,2027 年 3 月 15 日起为 100 天,2029 年 3 月 15 日起为 47 天。私有或内部 CA 签发的证书不受这些限制。如果叶证书超出其签发日期对应的上限,本工具会发出警告。

把证书粘贴到这里安全吗?

安全。证书本来就是公开的:每个访问你网站的人都会收到它。而且解析也在你的浏览器本地进行。私钥则是另一回事:切勿把私钥粘贴到任何网站上。如果你粘贴的内容中包含私钥,本工具会忽略它并提示你。

解读证书:各字段的含义

• 主体和颁发者:可分辨名称。CN 是通用名称,O 是组织,C 是国家。在自签名证书或根证书上,两者相同。

• 有效期:Not Before 和 Not After,以 UTC 表示。超出这个时间窗口,客户端就会拒绝证书,所以设备时钟错误可能导致有效证书验证失败。

• 序列号:在每个 CA 内唯一;吊销列表引用的就是它。

• 公钥:RSA 密钥为 2048 位或以上;ECDSA 密钥使用命名曲线,通常是 P-256 或 P-384,在强度相近的情况下短得多。Ed25519 目前在公开 TLS 中还很少使用。

• 密钥用途和扩展密钥用途:密钥可以用来做什么。TLS 服务器证书需要“TLS Web 服务器身份验证”;CA 证书需要“证书签名”。

• 基本约束:CA:TRUE 表示该证书可以签发其他证书;路径长度限制其下可以有多少级中间证书。

• 授权信息访问(AIA):从哪里获取颁发者证书(CA Issuers),以及向哪里查询吊销状态(OCSP)。

修复证书链问题

大多数在一个浏览器中正常、在另一个浏览器或 curl 中却报“证书不受信任”的错误,都源于服务器发送的证书链。服务器应先发送自己的证书,然后是签发它的中间证书,依此类推;它不需要发送根证书,客户端本身就有。浏览器有时能自行获取缺失的中间证书(通过 AIA 网址),但 curl、Java、Python 和大多数移动应用做不到,因此会失败。

把服务器的完整证书链粘贴到这里(Let’s Encrypt 用 fullchain.pem;其他 CA 则是你的证书加上 CA 证书包),检查每一行“由……签发”是否为绿色。如果顺序错了,请在服务器配置中调整 PEM 块的顺序。如果缺少某一环,请添加 CA 提供的中间证书。

相关免费工具

  • JWT 解码器 — 解码 JWT 的头部和载荷,用通俗语言显示过期时间,验证 HS、RS、PS 和 ES 签名,或签发新令牌。任何数据都不会离开浏览器。
  • Base64 编码 / 解码工具 — 把文本或文件编码为 Base64,把图片转成带 CSS 和 <img> 代码片段的 data URI,还能把 Base64 解码回可预览的文件。数据不会离开你的浏览器。
  • 密码生成器 — 生成高强度随机密码、好记的密码短语或 PIN 码。完全在浏览器中运行,不发送、不存储任何内容。
  • curl 转代码 — 粘贴 curl 命令(包括 Chrome 的“Copy as cURL”),即可得到 Python、JavaScript、Node、Go、PHP、Ruby、Java、C#、wget 或 HTTPie 版本的相同请求。
  • YAML 验证器 — 验证 YAML,精确给出每个错误的行号和列号,并揪出解析器会默默接受的错误:yes/no 布尔值、制表符、重复键。