Digital Certificate 数字证书

验证公钥持有者身份的文件。

公钥本身是一串数字——你怎么知道这个公钥真是 google.com 的,而不是中间人伪造的?答案:让一个大家都信的第三方(Certificate Authority,CA)在公钥上签个字。

证书里有什么

  • 持有者信息(域名、组织名)
  • 持有者公钥
  • 颁发者(CA)
  • 有效期
  • 签名算法
  • CA 的数字签名

信任链

你的浏览器
  └─ 内置信任的 Root CA
       └─ Root CA 签发的 Intermediate CA
            └─ Intermediate CA 签发了 google.com 的证书

浏览器只内置 Root CA。中间层和叶子证书都靠链式签名验证。

常见类型

类型用途
TLS/SSL 证书HTTPS 网站
代码签名证书证明这个 exe 没被改
客户端证书服务器反过来验你身份
S/MIME邮件加密签名

出问题的时候

  • 过期 —— 浏览器报红
  • 域名不匹配 —— 浏览器报红
  • 自签证书 —— 没有 CA 链,只在内网用
  • CA 被攻破 —— 整个信任体系崩塌(DigiNotar 事件)
  • 私钥泄露 —— 必须吊销 + 重签