OpenCerts 显示 Verified 但人不匹配:分开证书、颁发方与呈交者
链小知 · 入门 · 核验 · 依官方文档整理
用原文件和已有验证记录核对三类结果、证书姓名与业务认可颁发方,避免复制文件或渲染页面成为身份通行证。
开始前准备
- 准备本人有权查看的原OpenCerts文件、已有验证结果/界面记录、取得时间及期望颁发机构;优先在本地查看,不公开姓名、成绩或完整凭证。没有结果时只能完成字段整理,不能补造通过结论。
- 本篇按当前FAQ和v3文档、TrustVC固定2.15.4源码解释,未上传/验证任何个人证书。旧OA/新W3C访问DNS/DID、状态列表或链服务的权限与费用另核,不需要钱包私钥。
1. 保留原文件,确认不是打印或预览
先记录原文件取得渠道、文件名/格式及已有验证时间;另存原文件,不为修正姓名/成绩而改原JSON。PDF、截图或打印件只能显示内容,FAQ明确打印会丢失密码学保护,不能替代原OpenCerts文件。
若只有渲染页面,确认它对应原文件和已有验证结果。Renderer指南允许raw未签文档预览;能够看到姓名、成绩、Logo不证明文件通过验证,缺原文件/结果则标“只取得展示”。
检查结果:原文件、展示和已有验证记录分开,来源缺口明确。
2. 识别格式后取正确的持有人字段
旧OA v2解包数据常见recipient.name;W3C VC/OpenCerts v3的证书正文在credentialSubject,例如credentialSubject.recipient.name。OA wrapped v3也可用credentialSubject,不能只看到v3字样就认定W3C。
按本机构schema实际字段读取持有人姓名;migration示例也可直接credentialSubject.name,不能将课程name当持有人。issuer、validFrom/validUntil与renderMethod在另一层,字段空白先核包装/renderer取值,不改文件“补回来”。
检查结果:已标文档格式、原姓名字段路径和缺字段原因,不把课程或issuer名字当人名。
3. 把三类结果逐项列出而不只看绿色标签
从已有结果保存完整性、颁发方身份、文档状态对应fragment的type/name/status与reason/data。TrustVC verifyDocument返回fragment数组;旧OpenCert汇总默认检查DOCUMENT_INTEGRITY、ISSUER_IDENTITY、DOCUMENT_STATUS三类,单个VALID片段不是整体有效。
保留INVALID、ERROR、SKIPPED及缺结果的区别。旧处理代码若只指定部分types,不能标三类全部通过;空fragment或空types在固定isValidOpenCert会抛错,不是自动有效。没有原数组时仅引用已有界面状态,并标细分未取得。
检查结果:三项各有原证据/未知,汇总配置未跳过必要项。
4. 确认 issuer 是认可机构而不只可解析 DID
对已有issuer记录核完整域名/DID与该机构公开说明。W3C issuer可字符串或对象id;固定W3CIssuerIdentity要求issuerId等于proof.verificationMethod的#前部分,并尝试DID解析。匹配与解析成功仍不能独立证明现实机构资质或本业务认可它。
旧OA的DNS-TXT/DocumentStore与W3C did:web不同;不能用合约name、Logo或任意可解析DID替代颁发机构身份核对。旧Verifier页仍讲Registry,但已明确ceased,旧VALID记录/兼容源码不是注册服务现行保证。
检查结果:原issuer、签名方法身份和期望机构相符或列待核,历史Registry不当现行证据。
5. 核状态结果和时点,区分撤销与读取失败
已有W3CCredentialStatus结果中,INVALID的REVOKED/SUSPENDED与ERROR需分开:固定代码有列表处理错误会返回ERROR,不能等同撤销。W3CEmptyCredentialStatus的VALID来自“没有/空status配置且是signed结构”分支,并未查询撤销列表。
同时查看validFrom/validUntil等原字段和验证时间;状态列表可能更新,旧截图不证明当前有效。只有ERROR、网络失败或缺数据时向机构提供脱敏错误和格式,不编辑credentialStatus或重新签发;“真实但已撤销”也不能写当前有效。
检查结果:撤销机制、结果、有效期和读取时点分别有证据;未查状态明确标出。
6. 单独匹配呈交者,交付有限结论
将证书recipient与呈交人的已有授权身份材料按业务规则匹配;同名仍需业务所需的独立材料。FAQ明确文件可复制,证书验证不能自动认证谁拿着该文件,也不能代替资格审批。
最终按原文件/完整性、认可issuer、状态机制/时点、持有人匹配四列总结。缺一列标未核,不将“文件真实”扩大为“呈交者本人/一定有资格”。有错误保留原代码与脱敏时间,不包含密钥或完整私人凭证。
检查结果:证书有效与人/业务资格分开,得到可追溯检查表。
怎样确认完成
- 形成原文件—三验证—issuer认可—状态时点—持有人匹配的有限记录。
- 只整理已有授权材料;本教程为文档核验,未上传私人凭证或确认真实持有人/当前状态。
常见错误与边界
- 原文件复制不会自动改变受保护姓名;复制者不因此获得持有人身份。
- Renderer可以读raw预览,显示正常不是验签。
- 缺credentialStatus、列表读取ERROR、明确撤销和有效期结束是不同情况。