什么是SSL证书?
SSL证书 (安全套接层证书) 是认证网站身份并在网络服务器和浏览器之间建立加密连接的数字证书。虽然SSL已被TLS (传输层安全) 取代,但术语 "SSL证书" 仍被广泛使用。这些证书对HTTPS网站至关重要,显示向访问者显示安全性的挂锁图标。SSL证书的工作原理
握手过程
1. 浏览器请求安全连接
2. 服务器发送SSL证书 + 公钥
3. 浏览器使用CA验证证书
4. 浏览器创建会话密钥,用公钥加密
5. 服务器使用私钥解密
6. 建立加密会话
证书类型
按验证级别
| 类型 | 验证 | 时间 | 信任级别 | 用途 |
|---|---|---|---|---|
| DV (域) | 仅域名所有权 | 分钟 | 基础 | 博客、小型网站 |
| OV (组织) | 业务验证 | 1-3天 | 中等 | 业务网站 |
| EV (扩展) | 广泛验证 | 1-2周 | 最高 | 银行、电子商务 |
按覆盖范围
| 类型 | 覆盖 | 示例 |
|---|---|---|
| 单域名 | 一个域名 | example.com |
| 通配符 | 域名 + 所有子域名 | *.example.com |
| 多域名 (SAN) | 多个特定域名 | example.com, example.org |
证书颁发机构 (CA)
信任的证书颁发实体:
- 商业:DigiCert、Sectigo、GlobalSign
- 免费:Let's Encrypt、ZeroSSL
- 云提供商:AWS Certificate Manager、Cloudflare
获取SSL证书
免费选项 (Let's Encrypt)
# 使用Certbot
sudo certbot --nginx -d example.com -d www.example.com
# 自动续期
sudo certbot renew --dry-run
商业购买流程
1. 生成CSR (证书签名请求)
2. 提交给证书颁发机构
3. 完成验证 (DV/OV/EV)
4. 下载并安装证书
DNS配置 (CAA记录)
指定哪些CA可以颁发证书:
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issuewild "letsencrypt.org"
证书组件
| 组件 | 用途 |
|---|---|
| 公钥 | 加密发送到服务器的数据 |
| 私钥 | 解密数据 (保持机密!) |
| 证书链 | 链接到受信任的根CA |
| 有效期 | 过期日期 (通常90天-1年) |
最佳实践
1. 使用TLS 1.2+:禁用旧协议
2. 自动化续期:防止过期停机
3. 保护私钥:永远不要共享或暴露
4. 使用强密码:配置安全密码套件
5. 实现HSTS:强制HTTPS连接
6. 监控过期:在过期前设置警报
常见问题
- 证书不匹配:域名与证书不匹配
- 证书过期:有效期已超过
- 链不完整:缺少中间证书
- 混合内容:HTTPS页面上的HTTP资源
SSL证书是网络安全的基础,在传输过程中保护敏感数据的加密通信。