CentOS 作为一款广泛使用的企业级 Linux 发行版,其安全性配置一直是管理员关注的重点,在网站部署中,HTTPS 加密已成为标配,而 Certbot 作为 Let’s Encrypt 官方推荐的证书管理工具,能够自动化证书的申请、签发和更新流程,结合 Certbot-auto 脚本,CentOS 用户可以更便捷地实现 SSL 证书的自动化管理,提升网站的安全性和用户体验。

安装 Certbot-auto 的前置条件
在开始安装前,确保系统满足基本要求,CentOS 7/8 版本均可支持 Certbot-auto,建议使用最小化安装后更新系统软件包,执行 sudo yum update -y 命令确保所有组件为最新版本,需确认域名已正确解析到服务器,且 80 和 443 端口未被其他服务占用,如果使用 Nginx 或 Apache,建议提前停止服务或调整端口配置,避免与 Certbot 的临时服务器冲突。
下载并安装 Certbot-auto
Certbot-auto 是一个独立的 Python 脚本,无需复杂依赖即可运行,通过官方 GitHub 仓库下载最新版本:
sudo wget https://dl.eff.org/certbot-auto -O /usr/local/bin/certbot-auto sudo chmod a+x /usr/local/bin/certbot-auto
下载完成后,执行 certbot-auto --help 验证安装是否成功,首次运行时,脚本会自动安装 Python 环境及依赖包,可能需要几分钟时间,若遇到网络问题,可手动配置 yum 源或代理服务器。
申请 SSL 证书
根据服务器环境选择证书申请方式,对于 Nginx 用户,推荐使用 standalone 模式:
sudo certbot-auto certonly --standalone -d yourdomain.com -d www.yourdomain.com
--standalone 表示 Certbot 会临时启动一个独立 HTTP 服务器完成验证,-d 参数用于指定域名,成功后,证书文件将存放在 /etc/letsencrypt/live/yourdomain.com/ 目录下,包含私钥、证书和链文件。

若使用 Apache,可直接通过 --apache 参数自动配置虚拟主机:
sudo certbot-auto --apache
脚本会自动检测域名并生成配置文件,启用 HTTPS 重定向。
配置自动续期
Let’s Encrypt 证书有效期为 90 天,需定期续期以避免过期,Certbot 提供了自动续期功能,通过 cron 任务实现定时检查,编辑 crontab:
sudo crontab -e
添加以下行:
0 3 * * * /usr/local/bin/certbot-auto renew --quiet --post-hook "systemctl reload nginx"
该命令每天凌晨 3 点检查证书剩余有效期,若不足 30 天则自动续期,并重载 Nginx 服务。--post-hook 确保新证书生效后立即应用配置。

常见问题与优化
首次运行时可能遇到权限问题,可通过 sudo 或调整用户权限解决,若域名验证失败,检查 DNS 解析和防火墙设置(如 sudo firewall-cmd --add-service=http --permanent),建议开启证书 OCSP 裁缝,提升浏览器兼容性。
FAQs
-
Q: Certbot-auto 与 Certbot 有何区别?
A: Certbot-auto 是包含独立依赖的脚本,适用于离线环境;Certbot 需手动安装依赖,适合在线环境,两者功能一致,但 Certbot-auto 更便捷。 -
Q: 续期失败如何排查?
A: 查看/var/log/letsencrypt/letsencrypt.log日志文件,常见原因包括域名解析错误、端口占用或依赖缺失,确保certbot-auto renew --dry-run测试通过后再部署正式任务。