SSL 证书原理与类型
浏览器地址栏的锁头图标,是 SSL 证书存在的直接体现。没有 SSL,Chrome 会显示"不安全",用户流失、SEO 降权接踵而来。
SSL/TLS 解决什么问题
没有 HTTPS:
你的浏览器 → [明文数据,任何人可以截取和篡改] → 服务器
有了 HTTPS(SSL/TLS 加密):
你的浏览器 → [加密通道,只有两端能解读] → 服务器
SSL(Secure Sockets Layer)已经被更安全的 TLS(Transport Layer Security)取代,但习惯上还是叫 SSL。
SSL 握手过程(简化版)
sequenceDiagram
participant B as 浏览器
participant S as 服务器
B->>S: 你好,我支持这些加密方式
S->>B: 好,用这个,这是我的 SSL 证书
B->>B: 验证证书(是否由受信任 CA 签发?是否过期?域名是否匹配?)
B->>S: 验证通过,生成会话密钥(加密传输)
S->>B: 确认,开始加密通信
B->>S: 请求页面(已加密)
S->>B: 返回内容(已加密)
证书验证的三个核心问题: 1. 这张证书是由受信任的证书颁发机构(CA)签发的吗? 2. 证书是否还在有效期内? 3. 证书上的域名和你访问的域名一致吗?
SSL 证书类型
按验证级别分
| 类型 | 全称 | 验证内容 | 申请速度 | 适用场景 |
|---|---|---|---|---|
| DV | Domain Validation | 只验证域名所有权 | 几分钟 | 个人站、博客、独立站 |
| OV | Organization Validation | 验证域名 + 公司真实性 | 1–3 天 | 企业网站 |
| EV | Extended Validation | 最严格验证,显示公司名 | 1–2 周 | 银行、金融机构 |
独立站和大多数商业网站用 DV 证书就够了。
按覆盖域名数量分
| 类型 | 覆盖范围 | 示例 |
|---|---|---|
| 单域名证书 | 只覆盖一个域名 | example.com |
| 通配符证书 | 覆盖一个域名的所有子域 | *.example.com → shop、blog、mail… |
| 多域名(SAN)证书 | 覆盖多个不同域名 | example.com + example.io + shop.com |
免费 vs 付费证书
| 维度 | 免费(Let's Encrypt / Cloudflare) | 付费(Sectigo / DigiCert) |
|---|---|---|
| 价格 | 免费 | $50–$1000+/年 |
| 验证级别 | DV | DV / OV / EV |
| 有效期 | 90 天(自动续期) | 1–2 年 |
| 加密强度 | 相同 | 相同 |
| 浏览器信任 | 完全相同 | 完全相同 |
| 适合场景 | 绝大多数站点 | 需要 OV/EV 验证的企业 |
结论:对于独立站、SaaS、博客来说,免费证书完全够用,加密强度和付费证书相同。
证书颁发机构(CA)
常见的受信任 CA:
| CA | 特点 |
|---|---|
| Let's Encrypt | 最流行的免费 CA,自动化程度高 |
| Cloudflare | 集成在 Cloudflare 服务中,零配置 |
| DigiCert | 企业级付费 CA |
| Sectigo(原 Comodo) | 价格实惠的付费 CA |
| ZeroSSL | 免费 CA,另一个 Let's Encrypt 替代 |
CAA 记录:控制谁能签发证书
CAA(Certification Authority Authorization)记录可以限制只有特定 CA 能为你的域名签发证书,防止 CA 误签或恶意签发。
类型: CAA
名称: @
值: 0 issue "letsencrypt.org"
值: 0 issue "pki.goog"
值: 0 issuewild "letsencrypt.org"
如果不设置 CAA 记录:任何受信任 CA 都可以为你的域名签发证书(风险较高)。
下一节:Let's Encrypt 与 Cloudflare 免费 SSL 配置实战——一步步申请免费 SSL 并配置自动续期。