术语表 /开发者参考
叶证书
- 叶证书是什么?
- 叶证书是您实际连接的服务器出示的终端实体证书,它证明的是对某个域名的控制权,而不能证明域名背后的人是谁。
叶证书将公钥绑定到主机名,并由中间证书签发。其最长有效期不断缩短:上限已于2020年9月1日由825天降至398天,而 CA/Browser Forum 于2025年通过的一项表决将其逐步缩短,最迟于2029年3月降至47天。挂锁图标只说明域名匹配,而骗子的仿冒域名同样可以做到这一点。
运作方式
叶证书位于证书链的最底端,不能再签发任何其他证书。它的 basicConstraints 扩展将 CA 设为 false,这个标志正是它与上方所有证书在机制上的区别。它所涵盖的主机名记录在 subjectAltName 扩展中;当前的客户端会忽略较旧的通用名称字段,因此即使通用名称完全匹配,只要证书的 subjectAltName 中没有该主机名,验证就会失败。
证书签发所能证明的内容比多数人以为的要少。域名验证是成本最低、也是目前最常见的级别,它只检查申请者能否在该域名下的某个 URL 上放置令牌,或在该域名下发布 DNS 记录。在 ACME 协议下,这项检查几秒钟即可完成,且无需费用。组织验证和扩展验证会增加有关法律实体的文件手续,但浏览器已不再对这些努力给予回报:Chrome 77和 Firefox 70都在2019年秋季从地址栏中去掉了公司名称,因此无论哪种情况,访问者现在看到的都是同一个挂锁图标。
有两项进展确实有帮助。每一张受公众信任的叶证书都必须记录在 Certificate Transparency 日志中,而 Chrome 自2018年4月30日起就拒绝缺少日志记录证明的证书,因此任何人都可以在这些公开日志中搜索针对自己所拥有域名签发的证书,并发现无人申请的证书。有效期的缩短同样有帮助,原因很直接:被盗的密钥只在证书到期之前有用,这也是业界接受将期限逐步缩短到200天、再到100天、再到47天这一时间表的原因。
在哪里会遇到它
每次您登录交易所时,都会收到一张叶证书。浏览器用叶证书来比对主机名,它也是证书链中唯一一个能说明您眼前这个具体网站的环节。
对于购买比特币的人来说,这个术语的价值正在于此。仿冒域名(利用拼写错误)上的钓鱼页面带有一张完全有效的叶证书,它是自动免费签发的,旁边还有一个真实的挂锁图标。该证书确认的是,您的连接确实到达了地址栏中显示的域名。它并不声称该域名属于页面上显示其标志的那家公司。请逐个字符阅读主机名,留意第一个单斜杠之前紧邻的部分,并把挂锁理解为关于线路连接的陈述,而不是关于诚信的陈述。
在 BIP70 中,叶证书承担的是同样的工作,只是放在另一种容器里:它排在证书列表的第一位,支付请求上的签名由其私钥生成。
叶证书 vs 中间证书
叶证书是证书链的终点,中间证书则使证书链得以延续。两者中只有一个可以签发其他证书,如果客户端允许叶证书签发证书,就会接受任何人呈上的任何内容。这种区分也决定了私钥存放的位置。中间证书的密钥保存在认证机构的硬件模块内,在其生命周期内签发数千张证书。叶证书的密钥则位于它所标识的服务器上,面临该服务器所面临的一切风险,并在证书每次轮换时被更换。