清晰查看证书中的每一项内容
本证书解码器可读取 X.509 证书 — 包括每个 HTTPS 网站上的 SSL/TLS 证书,以及用于客户端认证、代码签名和 S/MIME 的证书 — 并清晰展示其全部内容:使用者与颁发者、有效起止日期及距过期天数、使用者可选名称(SAN)、公钥类型与大小、各项扩展信息,以及 SHA-1 和 SHA-256 指纹。粘贴一个或多个 PEM 块、纯 Base64,或拖入 .crt、.cer、.der、.pem、.p7b 文件均可。完整证书链将逐张解码,每层签名都会对照下一张证书进行验证。所有解析均在你的浏览器本地完成,不会上传任何数据。
如何解码证书
- 1粘贴证书内容(包括
-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----行),或将文件拖入输入框。 - 2查看基本摘要:颁发给谁、由谁颁发,以及当前是否有效。
- 3检查 Subject Alternative Names(使用者可选名称):浏览器会根据此列表匹配主机名,而不再根据通用名称(Common Name)匹配。
- 4复制指纹以便与其它副本核对,或将所有解析结果导出为 JSON。
X.509 证书包含哪些内容?
证书将公钥与身份名称绑定,并由为该绑定背书的颁发者签名。使用者是证书授予的对象,颁发者是签发证书的实体,均以可分辨名称(DN)表示,例如 CN=example.com, O=Example Inc., C=US。有效期指明证书可被信任的最早与最晚时间,序列号在颁发者签署的所有证书中唯一标识该证书 — 证书吊销列表(CRL)中记录的正是序列号。
其余所有信息均保存在扩展项中。自当今所有证书均遵循的格式版本 3 以来,扩展项承载了证书的大部分含义:证书覆盖哪些域名或名称、密钥允许用于什么用途、是否可以签署其它证书,以及前往何处检查证书是否已被吊销。
核心扩展项说明
- Subject Alternative Name (SAN)
- 证书适用的 DNS 域名、IP 地址、邮箱与 URI。浏览器会忽略通用名称(Common Name)而仅检查此列表;如 <code>*.example.com</code> 这样的通配符可覆盖一级子域名。
- Key Usage 和 Extended Key Usage
- 密钥被允许执行的操作:数字签名、加密密钥、签署证书;以及具体用途,如 TLS 服务器认证或代码签名。
- Basic Constraints
- 标识此证书是否为证书颁发机构(<code>CA:TRUE</code>)且可签署其它证书,以及其下方允许存在多少级中间证书(路径长度)。
- Authority Information Access 和 CRL Distribution Points
- 获取颁发者证书的下载地址、OCSP 响应程序地址,以及证书吊销列表的存放位置。
- Certificate Policies
- CA 采用的验证级别:域名型验证(DV)、企业型验证(OV)或增强型验证(EV)。
- Signed Certificate Timestamps
- 证明该证书已记录在公开的证书透明度(Certificate Transparency)日志中,这是主流浏览器对公开受信任 TLS 证书的强制要求。
PEM、DER、CRT 和 CER
DER 是证书的二进制编码(ASN.1 唯一编码规则)。PEM 则是用 -----BEGIN CERTIFICATE----- 包裹的同等内容的 Base64 编码,方便粘贴到文本文件和邮件中;同一个文件中的多个 PEM 块可构成证书链。扩展名 .crt 和 .cer 并不指明内部采用何种编码 — 两种编码均很常见 — 本解码器均可识别。.p7b 文件是包含多张证书的 PKCS#7 包,同样支持直接打开。
在命令行中转换时,openssl x509 -in cert.der -inform der -out cert.pem 可将 DER 转换为 PEM,而 openssl x509 -in cert.pem -noout -text 会输出与本页面几乎相同的信息。
证书链、自签名证书与指纹
服务器应先发送自身证书,随后附带通向受信任根证书的中间证书。在此处粘贴证书链时,每张证书的签名都会对照其下一张证书的公钥进行验证,因此你可以一目了然地看出顺序是否正确或是否缺少证书层级。若一张证书的使用者与颁发者相同,且签名可通过自身公钥验证,则称为自签名证书:要么是根 CA,要么是用于测试的证书。
指纹是整个证书的哈希值。SHA-256 指纹是固定(pinning)或对比证书的标准方式;Windows 证书查看器等旧工具仍会显示 SHA-1 指纹。SPKI SHA-256 哈希仅针对公钥计算,即使证书使用相同密钥续期,该哈希值也保持不变。如需为新证书生成密钥对,请查看密钥对生成器。
常见问题
- 如何检查 SSL 证书何时到期?
- 粘贴证书后查看“有效期”区域:“不晚于”即为到期时间,徽标会显示剩余天数。要获取某网站的证书,可在浏览器的证书查看器中打开并导出,或运行 openssl s_client -connect example.com:443 -showcerts。
- PEM 和 DER 有什么区别?
- 它们包含相同的证书内容。DER 为二进制格式;PEM 则是将其转换为带有 BEGIN 和 END 行的 Base64 文本。本工具对两者均支持。
- 为什么浏览器提示域名不匹配?
- 主机名必须包含在 Subject Alternative Name 扩展中。现代浏览器已不再读取 Common Name,因此域名仅存在于 CN 中的证书将被拒绝。
- 可以解码完整的证书链吗?
- 可以。将所有 PEM 块一起粘贴,或拖入 .pem 或 .p7b 文件包。每张证书将依序展示,且每层签名都会对照下一张证书的公钥进行检验。
- 自签名是什么意思?
- 证书是由其自身的私钥签署的,而非由独立的 CA 签发。根 CA 证书设计上都是自签名的;对于网站而言,自签名证书只有在客户端手动信任安装后才会被认可。
- 本工具可以解码私钥或 CSR 吗?
- 不能。它仅用于读取证书;如果你粘贴了私钥、公钥或证书签名请求(CSR),工具会给出相应提示。
- 在这里粘贴证书安全吗?
- 证书本身就是公开的 — 服务器会将其发送给每位访问者 — 而且所有解码解析完全在你的本地浏览器中进行。但请切记,永远不要在任何网站上粘贴私钥。