Technical Reference · 2026 Edition

为什么 Let's Encrypt 不颁发 BIMI 证书(VMC/CMC)

Let's Encrypt 无法颁发验证标记证书(VMC)或通用标记证书(CMC),因为 BIMI 证书的签发需要人工商标验证,而 ACME 协议无法实现这一自动化流程。了解为什么 VMC 的价格高达 1,000 美元以上,以及整个验证流程是如何运作的。

Last updated min read

自动化的鸿沟。

Let's Encrypt 是互联网历史上最成功的证书颁发机构之一。它已签发了数十亿张 TLS 证书,推动了 HTTPS 在全网的普及,而且完全免费。因此,当企业开始实施 BIMI 并发现标记证书的年费高达 1,000 美元以上时,论坛和技术支持帖子中几乎立刻就会出现这个问题:

"为什么 Let's Encrypt 不能直接签发 VMC?"

简短的回答是:ACME 协议自动化的是域名控制权验证。而 BIMI 证书需要的是完全不同的东西——关于商标所有权和品牌标识的人工判断。这两者无法通过同一套工具链来调和。

本文将解释其中的结构性原因、VMC 和 CMC 的实际验证流程,以及为什么免费 TLS 证书与 1,000 美元以上标记证书之间的价格差距并非随意定价——它反映的是由认证审核员执行的真实人工劳动。


背景:Let's Encrypt 究竟做什么

Let's Encrypt 基于 ACME 协议(自动化证书管理环境,RFC 8555)运行。整个模式围绕一个问题构建:

请求该证书的实体是否控制着相关域名?

为了自动回答这个问题,Let's Encrypt 使用以下三种验证方式之一:

  1. HTTP-01 — 在域名的指定 URL 路径下放置一个特定令牌。
  2. DNS-01 — 在域名的 DNS 区域中发布一条特定的 TXT 记录。
  3. TLS-ALPN-01 — 在 443 端口通过 TLS 握手响应一个特定证书。

如果验证成功,域名控制权即被证明。证书在数秒内签发。没有人工审核请求。也不可能有人工审核——Let's Encrypt 每天签发数百万张证书。

这种模式之所以有效,正是因为域名控制权是一个二元的、可由机器验证的事实。令牌要么存在,要么不存在。


BIMI 标记证书究竟证明什么

验证标记证书(VMC)或通用标记证书(CMC)证明的不是域名控制权。它证明的是性质完全不同的内容:

特定的 SVG 徽标与特定组织存在合法关联,且该组织有权在电子邮件客户端中展示该徽标。

为了做出这一断言,证书颁发机构必须回答那些没有机器可验证答案的问题:

  1. 该组织是否拥有或授权使用徽标中所描绘的商标?
  2. 该 SVG 文件是否忠实呈现了已注册的商标?
  3. 该徽标是否已持续公开使用足够长的时间,以符合 CMC 的历史使用规则?
  4. 该组织是否与商标注册证书上列明的法律实体为同一主体?

这些问题都无法通过在网络服务器上放置文件来解决。


VMC 验证流程:审核员的实际工作

认证标记验证机构(AMV)——目前被授权签发 VMC 的少数证书颁发机构,包括 DigiCert 和 Entrust——对每份申请都遵循既定的审核工作流程。以下步骤反映了 BIMI 工作组和 CA/浏览器论坛标记证书指南发布的要求。

1. 商标注册验证

审核员从相关的国家或国际注册机构(USPTO、EUIPO、WIPO、IPO 等)检索商标注册记录,并确认:

  • 该商标已注册(而非仅处于申请阶段)。
  • 注册状态为有效,未过期、撤销或放弃。
  • 商品和服务分类与申请人的业务相符。
  • 登记的所有人与提交证书申请的法律实体一致。

这一步骤需要访问多个商标数据库、具备国际知识产权法律知识,并对边缘情况做出判断——例如,待续展的商标是否构成失效注册。

2. 徽标与商标的对应审核

审核员将提交的 SVG 文件与存档的商标样本进行比对,判断两者是否实质上为同一标记。这不是像素级差异对比操作,而是需要人工评估:

  • 不同文件格式之间的风格等效性。
  • 颜色变化是否在可接受的容差范围内。
  • 简化或改编版本是否仍能代表已注册的商标。

3. SVG 技术合规检查

SVG 必须符合 BIMI SVG Tiny P/S 配置文件——SVG 1.2 Tiny 的一个受限子集。审核员验证该文件:

  • 不包含嵌入的光栅图像。
  • 不使用 JavaScript 或外部引用。
  • 包含正确的 </code> 元素。</li> <li class="md-li">在正方形视口中正确渲染。</li> </ul> <p class="md-p"> 这是唯一一个部分可自动化的步骤,一些证书颁发机构确实会运行自动预检。然而,自动检查并不能取代审核员的最终签字确认。 </p> <h3 id="4" class="md-h3">4. 组织身份验证</h3> <p class="md-p"> 审核员确认证书申请人与商标注册证书上列明的法律实体为同一主体。这通常涉及: </p> <ul class="md-ul"> <li class="md-li">审核公司章程或等效的工商注册文件。</li> <li class="md-li">确认申请人的授权代表具有签署权限。</li> <li class="md-li">如果该组织此前已有证书,则与现有身份记录进行交叉核对。</li> </ul> <h3 id="5-cmc" class="md-h3">5. CMC 历史使用验证(如适用)</h3> <p class="md-p"> 通用标记证书——为支持那些广为人知但未正式注册为商标的徽标而推出——需要不同的证据标准。申请人无需提供注册号,而是必须证明该徽标在符合要求的期限内<strong>持续公开使用</strong>。 </p> <p class="md-p"> 这正是 <strong>Wayback Machine</strong>(互联网档案馆)及类似的历史网页记录发挥作用的地方。审核员需要: </p> <ol class="md-ol"> <li class="md-li">在互联网档案馆中搜索该组织网站展示徽标的历史存档快照。</li> <li class="md-li">验证历史快照中可见的徽标与提交的 SVG <strong>实质上相同</strong>。</li> <li class="md-li">确认存档快照覆盖了所需的时间跨度,且无明显中断。</li> <li class="md-li">评估历史使用是否为真正的公开展示,而非内部使用或偶发性展示。</li> </ol> <p class="md-p"> 这一过程本质上是人工操作。Wayback Machine 并未提供返回结构化"徽标连续性评分"的 API。审核员必须检索存档快照、进行视觉检查并做出判断。边缘情况——如期间内的网站改版、徽标更新、域名变更——都需要与申请人沟通并提供补充文件。 </p> <hr class="md-hr" /> <h2 id="acme" class="md-h2">为什么 ACME 协议无法弥合这一鸿沟</h2> <p class="md-p"> ACME 协议的设计目标是自动化<strong>控制权的密码学证明</strong>。它定义的验证方式产生的结果要么有效,要么无效,毫无歧义。 </p> <p class="md-p"> 而标记证书验证产生的结果是<strong>判断,而非证明</strong>。请看: </p> <p class="md-p"> | 验证步骤 | 是否可机器验证? | 原因 | |---|---|---| | 域名控制权(TLS 证书) | <strong>是</strong> | 令牌存在与否是二元的 | | 商标注册状态 | 部分可以 | 注册机构 API 存在,但解读需要法律背景 | | 徽标与商标的对应关系 | <strong>否</strong> | 需要视觉和法律判断 | | SVG 技术合规性 | 部分可以 | 可进行自动预检,但单独使用不足够 | | 组织身份 | <strong>否</strong> | 需要文件审核 | | CMC 历史徽标使用 | <strong>否</strong> | 需要档案研究和视觉比对 | </p> <p class="md-p"> 即使未来版本的 ACME 扩展了新的验证类型,也不存在能够证明"此 SVG 是商标注册号 5,678,901 的忠实呈现"的验证响应。这一判定需要由具备资质的人工审核员来完成。 </p> <hr class="md-hr" /> <h2 id="vmc-1-000" class="md-h2">为什么 VMC 的价格在 1,000 美元以上</h2> <p class="md-p"> VMC 的价格反映的是上述审核流程的成本,而非签发证书所涉及的密码学运算成本。后者的成本微乎其微。 </p> <p class="md-p"> 成本构成包括: </p> <ol class="md-ol"> <li class="md-li"><strong>审核员时间</strong> — 具备资质的商标审核员需要审阅文件、与申请人沟通并做出判定决策。根据复杂程度,单个申请可能需要数小时的审核时间。</li> <li class="md-li"><strong>商标数据库访问权限</strong> — 对于高频用户而言,商业性访问 USPTO、EUIPO、WIPO 及其他注册机构并非免费。</li> <li class="md-li"><strong>责任与保险</strong> — AMV 需为其判定承担职业责任。如果 VMC 签发错误并导致品牌冒充,证书颁发机构将面临法律风险。</li> <li class="md-li"><strong>审计与合规开销</strong> — AMV 需</li> </ol> </div> <div class="doc-footer"> <a href="/" class="btn btn-primary">Convert Your Logo →</a> <a href="/check" class="btn btn-secondary">Audit Your Domain</a> </div> </main> </div> <footer> <div class="container footer-inner"> <div class="footer-left"> <span class="footer-copyright">© 2026 makeBIMI™</span> </div> <div class="footer-links"> <a href="/global" class="footer-link">Global</a> <a href="/knowledge">Learn</a> <a href="/certificates">VMC</a> <a href="https://veribimi.com" class="seo-link" rel="noopener">veriBIMI<sup style="font-size:0.45em; font-weight:400; color:rgba(247,248,248,0.28); position:relative; top:-0.5em; margin-left:1px; vertical-align:baseline;">℠</sup></a> <a href="https://veribimi.com/founder" rel="noopener">Founder</a> <a href="https://veribimi.com/privacy" rel="noopener">Privacy</a> </div> </div> </footer> <div class="cmd-overlay" id="cmd-overlay" role="dialog" aria-modal="true" aria-label="Command palette"> <div class="cmd-modal"> <div class="cmd-search-row"> <svg class="cmd-search-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg> <input type="text" class="cmd-input" id="cmd-input" placeholder="Search documentation, navigate pages…" autocomplete="off" /> <span class="cmd-esc">ESC</span> </div> <div class="cmd-results" id="cmd-results"></div> <div class="cmd-footer"> <span><kbd>↑↓</kbd> Navigate</span> <span><kbd>↵</kbd> Select</span> <span><kbd>ESC</kbd> Close</span> </div> </div> </div> <div class="toast-container" id="toast-container"></div> <!-- Inject sections data for Cmd+K --> <script> window.DOC_SECTIONS = ; </script> <script src="/public/js/app.js?v4"></script> <script src="/public/js/toc.js?v4"></script> <script src="/public/js/interactions.js?v4"></script> <!-- ── COOKIE CONSENT BANNER (EU/EEA only, based on CF-IPCountry) ── --> <div id="cookie-consent-banner" style="display:none;" role="dialog" aria-label="Cookie consent"> <div class="cookie-consent-inner"> <p class="cookie-consent-text"> We use Google Analytics to understand how visitors use this tool. No advertising cookies are set. <a href="https://veribimi.com/privacy" rel="noopener" class="cookie-consent-link">Privacy Policy</a> </p> <div class="cookie-consent-actions"> <button class="cookie-consent-btn cookie-consent-accept" onclick="acceptCookies()">Accept</button> <button class="cookie-consent-btn cookie-consent-decline" onclick="declineCookies()">Decline</button> </div> </div> </div> <script> (function() { // Only show for EU/EEA countries (Cloudflare sets CF-IPCountry via meta tag injected server-side) var country = document.documentElement.getAttribute('data-country') || ''; var EU_COUNTRIES = ['AT','BE','BG','CY','CZ','DE','DK','EE','ES','FI','FR','GR','HR', 'HU','IE','IT','LT','LU','LV','MT','NL','PL','PT','RO','SE','SI','SK', 'IS','LI','NO','GB','CH']; // EEA + UK + Switzerland (nFADP) var consent = localStorage.getItem('makebimi_cookie_consent'); if (!consent && EU_COUNTRIES.indexOf(country) !== -1) { document.getElementById('cookie-consent-banner').style.display = 'block'; } if (consent === 'declined') { // Remove GA4 script if previously declined var scripts = document.querySelectorAll('script[src*="googletagmanager"]'); scripts.forEach(function(s) { s.parentNode && s.parentNode.removeChild(s); }); } })(); function acceptCookies() { localStorage.setItem('makebimi_cookie_consent', 'accepted'); document.getElementById('cookie-consent-banner').style.display = 'none'; } function declineCookies() { localStorage.setItem('makebimi_cookie_consent', 'declined'); document.getElementById('cookie-consent-banner').style.display = 'none'; // Disable GA4 for this session window['ga-disable-G-S1HG2ZB83B'] = true; } </script> </body> </html>