上一篇
https证书管理
- 行业动态
- 2025-04-25
- 4344
HTTPS证书管理包括向CA申请、安装至服务器、配置域名匹配、定期续期及及时吊销,确保网站安全与信任
HTTPS 证书管理详解
证书申请流程
选择证书类型
- 域名验证(DV):仅验证域名所有权,适合个人网站或小型企业。
- 组织验证(OV):验证企业身份,适合中小企业。
- 扩展验证(EV):严格验证企业资质,浏览器地址栏显示绿色,适合金融、电商等高信任场景。
通过认证机构(CA)申请
- 免费证书:Let’s Encrypt、ZeroSSL 等。
- 付费证书:DigiCert、GlobalSign、Comodo 等。
域名验证方式
| 验证方式 | 说明 |
|—————-|———————————————————————-|
| HTTPS 文件验证 | 在网站根目录上传指定文件(如.well-known/acme-challenge/
)。 |
| DNS 记录验证 | 添加 TXT 记录(如_acme-challenge.example.com
)。 |
| 邮件验证 | 接收 CA 发送的验证邮件并点击链接。 |
证书安装与配置
服务器类型与配置路径
| 服务器类型 | 配置文件路径 | 重启命令 |
|————|—————————————|——————————|
| Apache |/etc/apache2/sites-available/default-ssl.conf
|systemctl restart apache2
|
| Nginx |/etc/nginx/sites-enabled/default-ssl
|systemctl restart nginx
|
| IIS | IIS 管理器 -> 站点 -> SSL 证书绑定 | 无(自动生效) |强制 HTTPS 访问
- Nginx 示例:
server { listen 80; return 301 https://$host$request_uri; }
- Apache 示例:
<VirtualHost :80> Redirect permanent / https://example.com/ </VirtualHost>
- Nginx 示例:
中间证书链配置
- 将 CA 提供的中间证书(如
bundle.crt
)与服务器证书合并,确保浏览器信任。
- 将 CA 提供的中间证书(如
证书更新与续期
手动更新
- 下载新证书,替换旧文件(如
cert.pem
、privkey.pem
、chain.pem
)。 - 重启服务器使配置生效。
- 下载新证书,替换旧文件(如
自动续期(以 Let’s Encrypt 为例)
- 使用
certbot renew
命令或配置 crontab 定时任务:0 0 /usr/bin/certbot renew --quiet-renewal >> /var/log/le-renew.log
- 使用
证书吊销与替换
吊销原因
私钥泄露、域名所有权变更、证书过期等。
吊销流程
- CA 吊销:联系证书颁发机构,提交吊销请求。
- 本地吊销:删除服务器上的证书文件,停止服务。
替换新证书
重新申请证书,按安装流程配置,并更新服务器配置。
证书存储与备份
私钥保护
- 权限设置:
chmod 600 privkey.pem
。 - 避免私钥上传至公共版本库(如 Git)。
- 权限设置:
备份策略
- 定期备份证书文件(
cert.pem
、privkey.pem
、chain.pem
)到安全存储(如云存储、加密硬盘)。
- 定期备份证书文件(
问题与解答
问题 1:申请 HTTPS 证书时,域名验证失败怎么办?
解答:
- 检查验证方式:确认是否选择了正确的验证类型(HTTPS 文件、DNS 或邮件)。
- 文件验证:确保文件路径正确(如
.well-known/acme-challenge/
),且文件内容完整。 - DNS 验证:检查 TXT 记录是否生效(可通过
dig
命令验证)。 - 防火墙设置:确保服务器 80/443 端口对 CA 服务器开放。
问题 2:如何确认 HTTPS 证书已正确安装?
解答:
- 浏览器检查:访问网站时,点击地址栏锁图标,查看证书详情(颁发者、有效期、域名匹配)。
- 在线工具检测:使用 SSL Labs(https://www.ssllabs.com/ssltest/)或 Qualys SSL Test(https://www.qualys.com/ssl-labs/)生成报告。
- 命令行验证:
openssl s_client -connect example.com:443 < /dev/null | grep "Verify return code"
返回
0
表示验证成功