证书、CSR 或密钥
粘贴 X.509 证书、证书签名请求 (CSR)、密钥或 PEM 格式的完整证书链,或加载 .crt、.cer、.der、.p7b、.pfx 或 .p12 文件。您将看到主体、SAN、有效期、扩展和指纹,以及证书链的顺序和签名是否正确、私钥是否与证书匹配。所有数据都不会离开您的浏览器。
可以同时粘贴多个块(证书、中间证书和密钥),或将文件拖放到此处

工作原理

X.509 证书是一份经过签名的文档,它将公钥与一个名称(域名、个人或组织)绑定在一起。在服务器之间和文件中传输的是其二进制形式 (DER),而复制粘贴的则是以 Base64 编码、位于 BEGIN CERTIFICATE 与 END CERTIFICATE 行之间的同一结构,即 PEM 格式。其中包含主体、颁发者、有效期、公钥,以及说明其用途和吊销状态查询位置的扩展。

本工具可识别证书、PKCS#10 证书签名请求 (CSR)、PKCS#8、PKCS#1 和 SEC1 私钥、公钥、PKCS#7 包 (.p7b) 以及 PKCS#12 文件 (.pfx、.p12)。如果同时粘贴多个块,它会按从终端实体证书到根证书的顺序排列证书链,使用颁发者的密钥验证每个签名,并将私钥与每个证书和每个 CSR 进行比较,告诉您哪个对应哪个。

它还可以在格式之间转换,根据证书和密钥生成 IIS 和 Azure 所要求的 .pfx,并生成新的 CSR 及其私钥,或用于测试的自签名证书。所有操作均通过浏览器的加密 API 完成:证书和密钥都不会发送到服务器。

示例

ISRG Root X1 · SHA-25696:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6Let's Encrypt 根证书的 SHA-256 指纹。这是证书颁发机构和信任存储公布的值:如果您手中文件的指纹与之相同,那它就是这个证书。
ISRG Root X1 · pin SPKIC5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M=以 Base64 表示的公钥 SHA-256。这是 Android 网络安全配置中的 pin-sha256 或应用的 certificate pinning 所使用的值;如果续期时重用密钥,该值不会改变。
root.crt + intermediate.crt + server.crtserver.crt + intermediate.crt + root.crtnginx 和 HAProxy 会将文件中的第一个证书视为服务器证书。如果证书链顺序颠倒,nginx 会将私钥与根证书进行比较,并以 key values mismatch 报错失败。
openssl pkcs12 -in viejo.pfx -legacy -nodes | openssl pkcs12 -export -out nuevo.pfxPBES2 · AES-256-CBC · MAC SHA-256旧版 Windows 或 OpenSSL 1.x 导出的 .pfx 使用 RC2 和 3DES 加密,而浏览器并未实现这些算法。此命令会使用 AES(OpenSSL 3 的默认格式)重新加密。

使用场景

  • 在安装证书颁发机构发来的证书之前,检查它是否涵盖所有域名 (SAN),以及到期日期是否符合预期。
  • 无需用 OpenSSL 比较模数,即可找出服务器上遗留的私钥分别对应哪个证书。
  • 找出客户端不信任您网站的原因:缺少中间证书、证书链顺序错乱或证书使用 SHA-1 签名。
  • 为购买或续期证书生成 CSR,密钥在您自己的计算机上创建,并附带等效的 OpenSSL 命令,方便您在服务器上操作。
  • 将 .crt 及其 .key 转换为用于 IIS、Azure App Service 或 Java 密钥库的 .pfx,或从 .pfx 中提取证书和密钥供 nginx 使用。
  • 获取证书的指纹或 SPKI 固定值,用于在移动应用中配置 certificate pinning 或验证客户端证书。

常见问题

在这里粘贴私钥安全吗?

密钥在您的浏览器中通过 Web Crypto API 处理,不会发送到任何服务器;您可以在开发者工具的“网络”标签页中确认这一点。尽管如此,最佳做法是将任何生产环境的密钥都视为机密:只在您信任的工具中粘贴,并在完成后关闭标签页。

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

DER 是二进制形式的证书,PEM 则是同一份二进制数据经 Base64 编码后置于 BEGIN 与 END 行之间。.crt 和 .cer 扩展名并不表示格式:它们可以是这两种格式中的任意一种。.p7b 是包含多个证书但不含密钥的 PKCS#7 包。.pfx 或 .p12 是 PKCS#12 文件:它将证书、中间证书和私钥一起保存,并用密码加密。

如何知道我的服务器是否缺少中间证书?

粘贴服务器上配置的内容。如果证书链以一个非自签名证书结束,就说明缺少一环:该证书的 Authority Information Access 扩展通常会在 CA Issuers 中提供下载颁发者证书的地址。桌面浏览器有时会自动获取,但 Android、curl 和大多数库不会,因此错误只会在部分客户端上出现。

公共 TLS 证书的有效期最长可以是多久?

自 2020 年 9 月起,浏览器会拒绝有效期超过 398 天的证书。CA/Browser Forum 于 2025 年批准分阶段缩短最长期限:自 2026 年 3 月 15 日起签发的证书为 200 天,自 2027 年 3 月起为 100 天,自 2029 年 3 月起为 47 天。因此,建议使用 ACME 自动续期。企业内部 CA 不受此限制。

CSR 应该用 RSA 还是 ECDSA?

ECDSA P-256 能以小得多的密钥和签名提供与 3072 位 RSA 相当的安全性,服务器完成握手也更快。所有当前的浏览器和系统都支持它。如果您有非常旧的客户端、嵌入式设备或只接受 RSA 的系统,RSA 2048 仍是稳妥的选择。

只把域名填在通用名称 (CN) 中就够了吗?

不够。自 2017 年的 Chrome 58 起,浏览器只查看主体备用名称 (SAN),CN 会被忽略。证书要用于的每个域名(包括 CN 中的域名)都必须列在 SAN 列表中。像 *.example.com 这样的通配符只覆盖一级:适用于 www.example.com,但不适用于 example.com 或 a.b.example.com。