证书是什么
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 证书体系的公开知识整理。