通过Certbot自动申请更新HTTPS网站的SSL证书

简介: 本文介绍了如何通过 Certbot 自动申请并更新 HTTPS 网站的 SSL 证书,配合 Crontab 实现自动续签,解决云服务商免费证书仅限 3 个月有效期的问题,适用于 CentOS、Debian、Ubuntu 系统,支持 Nginx 和 Apache 服务器。

原文地址:通过Certbot自动申请更新HTTPS网站的SSL证书

现在很多云服务运营商免费的HTTPS证书有效期只有3个月,对于个人网站来说,这就很麻烦,现在可以用 Certbot + Crontab 自动申请并定期更新 HTTPS 网站的 SSL 证书,来解决我们这个痛点。

1. 安装 Certbot

不同系统安装方式略有不同,这里给你 CentOS / RHEL 和 Debian / Ubuntu 的常用方法。

CentOS / RHEL 7/8/9

# 安装 EPEL
sudo yum install epel-release -y

# 安装 Certbot 和 Nginx 插件(如果用 Apache 就换成 python3-certbot-apache)
sudo yum install certbot python3-certbot-nginx -y

Debian / Ubuntu

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

2. 申请 SSL 证书

如果你用 Nginx:

sudo certbot --nginx -d example.com -d www.example.com
  • -d 参数后面写你的域名(可以多个)
  • Certbot 会自动修改 Nginx 配置并申请证书
  • 申请过程中会让你选择是否重定向 HTTP → HTTPS

注意:这里需要你的nginx的conf文件里面的sercername指定对应的域名,如果你配置的是下划线 "",会导致该命令运行失败,报下面的错误。

Could not automatically find a matching server block for zhangfeidezhu.com. Set the `server_name` directive to use the Nginx installer.

如果你用 Apache:

sudo certbot --apache -d example.com -d www.example.com

3. 测试证书是否生效

申请完成后,可以在浏览器访问你的域名,查看是否已经是有效的 Let's Encrypt 证书。

4. 自动更新证书

Let's Encrypt 证书有效期是 90 天,所以要自动续签。

Certbot 自带定时任务(通常是 /etc/cron.d/certbot 或 systemd 定时器),也可以手动添加 crontab:

sudo crontab -e

加入:

0 3 1 */3 * certbot renew --quiet --post-hook "nginx -s reload"

解释:

  • 0 3 1 */3 * → 每隔 3 个月的1号3点执行一次
  • --quiet → 静默模式
  • --post-hook "nginx -s reload" → 续签后自动重载 Nginx

5. 检查自动续签是否正常

手动测试续签:

sudo certbot renew --dry-run

如果提示 Congratulations, all renewals succeeded,说明没问题。

✅ 这样配置后,你的网站 HTTPS 证书会在到期前自动续签,Nginx 会自动加载新证书,几乎可以做到“一劳永逸”。

相关文章
|
域名解析 缓存 网络协议
Let's Encrypt 配置 HTTPS 免费泛域名证书
Let's Encrypt 配置 HTTPS 免费泛域名证书
4564 0
|
负载均衡 Ubuntu 应用服务中间件
|
应用服务中间件 Linux API
acme.sh 快速实现 https 证书颁发与自动续期
借助acem.sh来迅速实现 let's encrypt 的泛域名 ssl 证书颁发与续期,基本上五分钟就可以解决战斗
5458 0
|
网络协议 Shell 应用服务中间件
acme.sh使用教程
安装 安装 acme.sh安装很简单, 一个命令: curl https://get.acme.sh | sh普通用户和 root 用户都可以安装使用。 会安装在 ~/.acme.sh/ 目录下,以后生成的证书也会在这里面,按照域名为文件夹安置。
18525 2
免费证书certbot-aliyun
免费证书certbot-aliyun
2570 1
|
3月前
|
监控 网络协议 网络安全
阿里云SSL证书自动续签与部署完全指南:从托管服务到开源工具链
本文全面解析阿里云SSL证书自动续签与部署的四种主流方案。首先介绍数字证书管理服务V2.0的托管服务,通过开启自动托管实现证书到期前自动续签并一键部署至云产品。其次深入讲解acme.sh + 阿里云DNS API的自动化方案,通过纯Shell脚本和cron定时任务实现Let's Encrypt免费证书的无人值守续期。第三部分详细说明Certbot + DNS插件的配置方法,支持泛域名证书的自动DNS验证。最后提供将开源工具签发的证书自动部署到阿里云CDN、SLB等云产品的完整脚本实现,涵盖API调用、权限配置和部署任务创建。文章还包含证书监控告警设置、续签失败应急处理等进阶内容,并附有6个常见
|
7月前
|
网络协议 数据可视化 应用服务中间件
如何申请免费ssl证书以及自动续期
本文详解SSL证书申请与自动续期方案:推荐可视化工具CertGo(桌面端)和轻量脚本acme.sh。涵盖阿里云DNS配置、FreeSSL账号绑定(EAB)、多域名/泛域名申请、Nginx部署及自动续签,零依赖、易上手,助你轻松实现HTTPS全站加密。(239字)
2362 3
|
10月前
|
安全 应用服务中间件 Shell
【HTTPS实战】让你的网站更安全:免费申请SSL证书并配置HTTPS全流程
本文介绍如何在阿里云ECS上为网站配置HTTPS。通过使用Let's Encrypt免费SSL证书和Certbot工具,可一键申请证书并自动配置Nginx,实现数据加密与SEO优化。需准备域名、开放443端口,并设置自动续期,确保证书长期有效,让网站拥有安全锁标志,提升用户信任。
|
监控 安全 网络协议
永久免费SSL证书教程—自动续签
要实现免费SSL证书的自动续签,选择合适的证书颁发机构(CA)至关重要。推荐使用JoySSL,填写注册码230922可获得免费且支持自动续签的SSL证书。申请步骤包括注册账户、选择证书类型、提交申请、验证域名所有权及安装证书。配置自动续签需安装续签工具、生成密钥和CSR,并设置续签参数。定期检查证书状态、备份证书和密钥,确保续签顺利进行。注意CA机构的政策和服务条款变化,以保持证书的有效性。
|
存储 监控 安全
告别手动续签烦恼:一键实现免费SSL证书自动更新
告别手动续签烦恼,一键实现免费SSL证书自动更新。通过自动化续签过程,减少人为错误,提高安全性,节省时间,确保网站始终提供安全、可信的服务。选择支持自动续签的证书颁发机构,并配置相应的工具,轻松管理SSL证书。