免费SSL证书配置和自动续期
2026/2/3大约 3 分钟
使用 Let's Encrypt 给网站添加 HTTPS 支持,最推荐也最简单的方法是使用官方推荐的客户端工具 Certbot。
第一步:准备工作
在开始之前,请确保满足以下条件:
- 拥有一个域名,并且已经解析(A记录)指向了你的服务器 IP。
- 服务器上已安装 Web 服务器(如 Nginx 或 Apache),并且网站通过 HTTP (80端口) 可以正常访问。
- 拥有服务器的 Root 或 Sudo 权限。
第二步:安装 Certbot
使用 cat /etc/os-release 查看你的操作系统。我用的是阿里云 Linux 3,它基于 CentOS/RHEL 系列,使用 dnf 或 yum 作为包管理器,而不是 apt。
使用 sudo dnf install epel-release -y 安装 EPEL 源会提示如下错误,是因为阿里云 Linux 已经自带了阿里云版本的 EPEL 源(epel-aliyuncs-release),和标准的 epel-release 冲突了。
错误:
问题: 安装的软件包的问题 epel-aliyuncs-release-8-15.1.al8.noarch
- package epel-aliyuncs-release-8-15.1.al8.noarch from @System conflicts with epel-release provided by epel-release-8-22.el8.noarch from epel
- package epel-aliyuncs-release-8-15.1.al8.noarch from alinux3-updates conflicts with epel-release provided by epel-release-8-22.el8.noarch from epel
- 冲突的请求
(尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)直接安装 Certbot 及其 Nginx 插件:
sudo dnf install certbot python3-certbot-nginx -y第三步:申请并安装证书
Certbot 的强大之处在于它提供了一个“一键式”命令,能自动修改你的 Nginx/Apache 配置文件。
使用nginx的话可以运行以下命令申请证书:
sudo certbot --nginx运行上述命令后,终端会让你进行一些交互选择:
- 输入邮箱:用于接收证书过期提醒和安全通知。
- 同意服务条款:输入 Y 或 A 同意。
- 选择域名:Certbot 会扫描你的配置文件,列出检测到的域名。直接回车(全选)或者输入数字选择特定域名。
- 是否重定向 HTTP 到 HTTPS(关键步骤):
它会问你是否要 redirect HTTP traffic to HTTPS。
选择 2 (Redirect):Certbot 会自动修改配置,让所有访问 http:// 的请求自动跳转到 https://(推荐)。
选择 1 (No redirect):不自动跳转,你需要自己手动配置。
等待几秒钟,如果显示 Congratulations!,说明证书已安装成功。
第四步:验证 HTTPS
打开浏览器,访问你的网站 https://你的域名。
第五步:自动续期(非常重要)
Let's Encrypt 的证书有效期只有 90 天。不过,Certbot 安装时通常会自动添加一个定时任务(Cron job 或 Systemd timer)来自动续期。
你可以运行以下命令来测试自动续期机制是否正常:
sudo certbot renew --dry-run如果输出结果显示 Congratulations, all simulated renewals succeeded,则说明自动续期配置没有问题,你可以放心使用了。系统会在证书过期前 30 天内自动帮你续期。