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. 步骤 1安装certbot

    在Debian/Ubuntu上执行 apt update && apt install certbot python3-certbot-nginx,CentOS等系统用对应包管理器安装。

  2. 步骤 2确认前置条件

    确保域名已解析到本机公网IP,且80、443端口对外可达(不被防火墙/安全组拦截),否则Let's Encrypt无法完成域名验证。

  3. 步骤 3执行证书申请与安装

    运行 certbot --nginx -d example.com -d www.example.com,按提示输入邮箱、同意条款,certbot会自动申请证书并写入Nginx配置。

  4. 步骤 4验证自动续期

    执行 certbot renew --dry-run 模拟续期,确认没有报错,说明到期前会自动续期成功。

  5. 步骤 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方式的替代流程。

相关教程

官方资料来源