浏览器锁形图标的真相
访问网站时,地址栏中显示的锁形图标并不意味着"这个网站是安全的"。准确地说,它的含义是"与该网站的通信已加密",而支撑这种加密的就是数字证书。
钓鱼网站也会显示锁形图标。锁形图标表示的是通信路径的安全性,而非网站本身的可信度。要理解这个区别,就需要了解数字证书的工作原理。
什么是数字证书
数字证书是网站的"身份证"。就像现实世界中护照由政府证明"此人确为本人"一样,数字证书由证书颁发机构(CA: Certificate Authority)证明"此域名是真实的"。
证书包含以下信息:
- 域名:证书有效的域名(例:kakunin-ip.click)
- 公钥:用于加密通信的密钥
- 颁发者:颁发证书的证书颁发机构名称
- 有效期:证书的有效期限(目前最长 398 天)
- 数字签名:证书颁发机构的防篡改签名
HTTPS 连接背后发生的事
浏览器访问 HTTPS 网站时,一个叫做 TLS 握手的过程会在 0.1~0.3 秒内完成。
- 出示证书:服务器将数字证书发送给浏览器
- 验证证书:浏览器验证证书的有效期、域名是否匹配、证书颁发机构的签名
- 确认信任链:确认颁发证书的机构是否在浏览器内置的"受信任根证书颁发机构"列表中
- 密钥交换:验证成功后,安全地交换用于加密通信的对称密钥
- 开始加密通信:此后所有通信都被加密
如果这个过程中任何一步失败,浏览器就会显示"此连接不是私密连接"的警告。
证书的种类和信任级别
| 种类 | 验证内容 | 获取成本 | 用途 |
|---|---|---|---|
| DV(域名验证) | 仅验证域名所有权 | 免费~几千日元/年 | 个人网站、博客 |
| OV(组织验证) | 域名 + 组织真实性 | 数万日元/年 | 企业网站、电商网站 |
| EV(扩展验证) | 域名 + 组织 + 法律实体 | 十几万日元/年 | 银行、证券公司、大型企业 |
Let's Encrypt 的出现使 DV 证书可以免费获取。这大大推进了整个 Web 的 HTTPS 化,但同时也意味着钓鱼网站也能轻松显示锁形图标。
证书的信任链 - 为什么值得信任
数字证书的信任建立在"链条"之上。
你的浏览器中预装了约 100~150 个"根证书颁发机构"的证书。这些是 Mozilla、Apple、Google、Microsoft 等浏览器厂商经过严格审查后选定的。
网站的证书通常不是由根证书颁发机构直接签发,而是通过"中间证书颁发机构"签发。浏览器沿着网站证书→中间证书颁发机构→根证书颁发机构的信任链逐级验证,最终能追溯到浏览器内置的根证书颁发机构,就判定为"可信"。
这个机制失效的情况是证书颁发机构本身签发了非法证书。历史上 DigiNotar(2011 年)和 Symantec(2017 年)就因此失去信任,被浏览器移除。Certificate Transparency 就是用来检测这类非法签发的机制。
证书有效期越来越短的原因
SSL/TLS 证书的最长有效期逐年缩短。2012 年可以有效 5 年,但 2020 年以后被限制为最长 398 天(约 13 个月)。Apple 在 2025 年提出的方案计划到 2029 年缩短至 47 天。
缩短有效期的原因是为了限制私钥泄露时的风险。证书有效期越短,即使私钥被盗,该证书被滥用的时间也能控制在最小范围内。证书验证在保护你的数字足迹方面也发挥着重要作用。想确认自己的通信是否安全加密,可以在IP 确认上查看安全评分和连接状态。
想系统学习数字证书和加密原理的人,可以参考密码学入门书籍。