SSL 证书与 PEM 证书包解析
加密与哈希
正在载入
正在加载工具
正在准备工具,暂时无法估算剩余时间。
本工具的全部运算都发生在你的浏览器中,输入内容不会发送到任何服务器。
关于这个工具
在浏览器中查看单张证书或 PEM 证书包。逐项显示主体、颁发者、有效期、公钥属性及指纹。候选颁发者仅通过名称编码匹配,不证明签名或信任。
常见用途
- 不上传证书即可发现已过期或尚未生效的条目。
- 检查叶证书在前的证书包,发现候选颁发者缺失、歧义、重复或顺序问题。
- 保留单证书工作流,同时查看 RSA、命名曲线 EC 及支持的现代公钥元数据。
使用方法
- 1.粘贴一个或多个 CERTIFICATE PEM 块;单张证书也可使用 DER 十六进制模式,或选择证书文件。
- 2.运行检查并逐项阅读字段、格式错误与日期警告;编号遵循原始输入顺序。
- 3.检查候选颁发者编号与顺序诊断。同名或自颁发不代表自签名,也不代表受信任。 确认当前结果与检查范围后复制有界报告。修改输入或切换模式会使旧结果失效。
合成输入实测示例
叶证书后紧跟名称匹配候选
-----BEGIN CERTIFICATE----- MHcwawIBAjAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBM ZWFmMAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MHcwawIBATAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBS b290MAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE-----
{"subjects":["CN=Synthetic Leaf","CN=Synthetic Root"],"statuses":["withinDates","withinDates"],"candidates":[[1],[]],"issues":[]}这些是带有虚构签名的合成元数据,不是可用证书链。以 2026-01-01 为当前时间,候选索引 1 紧跟叶证书索引 0;名称匹配不验证签名。示例数组索引从 0 开始,界面证书编号从 1 开始。
反向排列时发现前置候选
-----BEGIN CERTIFICATE----- MHcwawIBATAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBS b290MAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MHcwawIBAjAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBM ZWFmMAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE-----
{"subjects":["CN=Synthetic Root","CN=Synthetic Leaf"],"statuses":["withinDates","withinDates"],"candidates":[[],[0]],"issues":["orderMismatch"]}索引 1 的叶证书在前方找到候选 0。orderMismatch 提醒人工检查,不会自动重排或认定路径已验证。报告中的全部签名均未验证。
缺失的颁发者仍保持未解决
-----BEGIN CERTIFICATE----- MHcwawIBAjAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBM ZWFmMAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE-----
{"subjects":["CN=Synthetic Leaf"],"statuses":["withinDates"],"candidates":[[]],"issues":["missingIssuer"]}输入只有叶证书。missingIssuer 表示本地没有找到 DER 字节完全相同的主体名称,不表示该颁发者必然无效或在其它地方不存在。工具不会访问任何 URL。
识别完全重复的公共证书
-----BEGIN CERTIFICATE----- MHcwawIBATAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBS b290MAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MHcwawIBATAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBS b290MAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE-----
{"subjects":["CN=Synthetic Root","CN=Synthetic Root"],"statuses":["withinDates","withinDates"],"candidates":[[1],[0]],"issues":["duplicateCertificate"]}第二张公共证书与第一张 DER 字节完全相同。duplicateCertificate 标记重复;同名候选关系仍不代表任何信任或签名判断。
多个同名证书保持歧义
-----BEGIN CERTIFICATE----- MHcwawIBAjAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBM ZWFmMAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MHcwawIBATAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBS b290MAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MHcwawIBAzAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBS b290MAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE-----
{"subjects":["CN=Synthetic Leaf","CN=Synthetic Root","CN=Synthetic Root"],"statuses":["withinDates","withinDates","withinDates"],"candidates":[[1,2],[2],[1]],"issues":["ambiguousIssuer"]}两张不同的合成证书使用完全相同的主体名称编码,因此均是叶证书的颁发者候选。ambiguousIssuer 避免误报唯一颁发者。
格式错误条目保留原始位置
-----BEGIN CERTIFICATE----- MHcwawIBAjAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBM ZWFmMAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MAA= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MHcwawIBATAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBS b290MAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE-----
{"subjects":["CN=Synthetic Leaf",null,"CN=Synthetic Root"],"statuses":["withinDates","certificateInvalid","withinDates"],"candidates":[[2],[]],"issues":["malformedEntry","orderMismatch"]}中间的空 DER SEQUENCE 不是证书,错误保留在索引 1。候选索引 2 仍被列出;orderMismatch 提示它并未紧跟叶证书。
在固定未来设备时间下已过期
-----BEGIN CERTIFICATE----- MHcwawIBATAEBgIqAzAZMRcwFQYDVQQDDA5TeW50aGV0aWMgUm9vdDAeFw0yMDAx MDEwMDAwMDBaFw0zMDAxMDEwMDAwMDBaMBkxFzAVBgNVBAMMDlN5bnRoZXRpYyBS b290MAowBAYCKgMDAgABMAQGAioDAwIAAQ== -----END CERTIFICATE-----
{"subjects":["CN=Synthetic Root"],"statuses":["expired"],"candidates":[[]],"issues":[]}此例将设备时间固定为 2040-01-01,已经晚于编码中的 2030-01-01 截止时间。expired 只描述日期,不意味着额外检查了签名或吊销。
私钥块标签会使整个输入被拒绝
-----BEGIN PRIVATE KEY----- SYNTHETIC-NONKEY-SENTINEL -----END PRIVATE KEY-----
{"subjects":[],"statuses":[],"candidates":[],"issues":["pemUnsupportedBlock"]}块内容是明确虚构的非密钥标记。禁止的标签会以固定诊断拒绝整个输入;报告不会包含该内容,也不会尝试解析真实私钥。
限制与说明
- 最多 32 张证书、2 MiB 输入,并限制 DER 深度、节点数及输出。严格的纯证书 PEM 输入拒绝私钥、其它块类型、外围说明文字与错误边界。
- 候选关系要求颁发者与主体名称的 DER 字节完全相同。同义但编码不同的名称可能不匹配;无关证书的同名也可能匹配。不检查签名、CA/密钥用途、名称约束、域名、系统信任、完整 PKIX 路径或吊销状态。
- 不会访问 AIA、OCSP、CRL 或其它证书 URL。输入仅在本地处理且不持久化。日期状态使用设备时钟;指纹依赖 Web Crypto。
- 未知算法可显示标识符而不解释参数。本工具是有界字段与结构检查器,不是完整 ASN.1 模式验证器,也不应据此作出安全决策。
常见问题
匹配颁发者或“自颁发”代表证书链受信任吗?
不代表。匹配比较名称编码,不验证签名或信任根。自颁发仅表示主体与颁发者名称相同,不能证明自签名。信任判断应使用独立且配置正确的证书验证器。
一张证书格式错误时怎么办?
报告会标记该条目并保留其它可解析条目。PEM 边界错误或禁止的块类型会拒绝整个输入。诊断不会包含私钥块内容。
在有效期内能证明什么?
仅表明设备时钟落在证书编码的时间区间内,不能证明签名、未吊销、域名所有权或任何依赖方信任该证书。