证书是什么

SSL/TLS 证书本质是一个经过签名的电子文件,证明"这个公钥属于这个域名"。

它包含:

  • 域名(或域名列表);
  • 公钥;
  • 签发机构(CA);
  • 有效期;
  • CA 的数字签名。

浏览器内置了可信根 CA 的列表。当你访问一个 HTTPS 网站时,浏览器会验证证书链是否最终指向某个可信根。

验证的三个等级

DV(域名验证):只验证你对域名的控制权。签发快,可自动化,成本低。

OV(组织验证):额外验证申请组织的真实身份。需要人工审核,耗时数天。

EV(扩展验证):最严格的审核流程。早期浏览器会给 EV 证书显示绿色地址栏(现在多数浏览器已取消这一特殊显示)。

关键点:从加密强度看,DV 和 EV 没有区别——它们使用相同的加密算法。区别只在于"网站运营者的身份被验证到什么程度"。

Let's Encrypt 的意义

2016 年之前,HTTPS 证书通常需要付费(每年数百到数千元)。这让很多个人网站和小型项目继续使用 HTTP。

Let's Encrypt 是一个非营利证书颁发机构,提供免费的 DV 证书,并设计了 ACME 协议实现全自动签发。

它改变了整个互联网:HTTPS 的普及率因此大幅提升。

ACME 协议如何验证域名

要证明"你控制这个域名",ACME 提供几种挑战方式:

HTTP-01:CA 要求你在 http://你的域名/.well-known/acme-challenge/某个令牌 放置一个特定文件。CA 访问它,验证内容正确 —— 证明你控制该域名的 Web 服务器。

DNS-01:CA 要求你在域名的 DNS 记录中添加一条指定的 TXT 记录。CA 查询 DNS 验证 —— 证明你控制该域名的 DNS。

DNS-01 的优势是可以签发通配符证书(*.example.com),而 HTTP-01 不行。

有效期为什么缩短

早期证书有效期可达数年。现在的趋势是不断缩短,主流 CA 签发的证书有效期已缩短到数月。

原因:

  • 证书被泄露或误签发时,短有效期限制了暴露窗口;
  • 促使网站运维实现自动化续期,避免"证书过期导致网站挂掉"的常见事故;
  • 推动整个生态的自动化。

这也意味着:手动管理证书已不可行,必须使用自动化工具。

常见故障:证书过期

这是运维中最常见的"低级事故"之一。症状是访问网站时浏览器报"证书已过期"警告。

防范:

  • 使用自动续期工具,并设置监控告警;
  • 监控证书的剩余有效期(如剩余 30 天时告警);
  • 注意:如果证书是通配符证书,DNS 验证的自动化配置可能更复杂。

证书透明度

Certificate Transparency(CT)是一个公开日志系统:所有签发的证书都会被记录到公开可查的日志中。

这样,域名所有者可以发现是否有 CA 未经授权为自己签发了证书——这是一种对 CA 权力的制衡机制。

现代浏览器要求证书必须包含 CT 证明(SCT)才被信任。

说明:本文为 HTTPS 证书体系的公开知识整理。