SSL 证书安装
更新于 2026年7月23日
适用人群:使用Linux+Nginx/Apache、想免费申请并安装Let's Encrypt证书的站长
核心概念
证书相关文件说明
| 文件 | 内容 |
|---|---|
| privkey.pem | 私钥,必须妥善保管,不能泄露 |
| cert.pem | 仅本域名的证书 |
| chain.pem | 中间证书链 |
| fullchain.pem | cert.pem + chain.pem 合并,Nginx配置通常用这个 |
Let's Encrypt证书有效期为90天,certbot安装时默认会注册系统定时任务(cron或systemd timer)在到期前自动续期,一般无需人工干预,但建议定期检查续期任务是否正常运行。
操作步骤
步骤 1安装certbot
在Debian/Ubuntu上执行 apt update && apt install certbot python3-certbot-nginx,CentOS等系统用对应包管理器安装。
步骤 2确认前置条件
确保域名已解析到本机公网IP,且80、443端口对外可达(不被防火墙/安全组拦截),否则Let's Encrypt无法完成域名验证。
步骤 3执行证书申请与安装
运行 certbot --nginx -d example.com -d www.example.com,按提示输入邮箱、同意条款,certbot会自动申请证书并写入Nginx配置。
步骤 4验证自动续期
执行 certbot renew --dry-run 模拟续期,确认没有报错,说明到期前会自动续期成功。
步骤 5检查Nginx配置是否生效
certbot会自动修改对应server块并reload Nginx,可执行 nginx -t 确认语法正确,再访问https地址验证。
实际示例
# 安装 certbot(Ubuntu/Debian)
apt update
apt install certbot python3-certbot-nginx
# 申请并自动写入Nginx配置
certbot --nginx -d example.com -d www.example.com
# 模拟续期,检查自动续期是否正常
certbot renew --dry-run
# 查看系统里的自动续期定时任务
systemctl list-timers | grep certbot
# 或
cat /etc/cron.d/certbot
常见错误
- ⚠️域名还没解析到当前服务器就执行certbot,导致HTTP-01验证失败
- ⚠️80端口被安全组/防火墙挡住或被其他程序占用,验证请求打不进来
- ⚠️多台服务器做负载均衡但只在一台上申请了证书,其他节点证书没同步
- ⚠️证书到期前自动续期任务被误删或cron服务未运行,导致证书突然过期
对应工具
常见问题
certbot证书的有效期是多久?
Let's Encrypt签发的证书有效期为90天,certbot安装时会自动配置续期任务,一般在到期前30天左右自动尝试续期。
需要手动续期吗?
正常情况下不需要,certbot自带的定时任务会自动续期;建议定期用 certbot renew --dry-run 检查续期机制是否正常。
可以给多个域名申请同一张证书吗?
可以,用多个 -d 参数指定,例如 -d example.com -d www.example.com -d api.example.com,会签发一张包含多个SAN的证书。
没有root权限能安装证书吗?
certbot申请并写入系统级Nginx配置通常需要root或sudo权限;如果没有服务器管理权限,需要联系主机提供商或用支持webroot方式的替代流程。
相关教程
官方资料来源