前提条件:
1.已有域名
2.Nginx 已安装并正在运行,且有对应的 Server 配置
3.防火墙开放 80 和 443 端口
安装 EPEL 仓库:
sudo yum install epel-release -y
安装 Snapd
sudo yum install snapd -y
启用并启动 Snapd Socket
sudo systemctl enable --now snapd.socket
创建 Snap 的符号链接
sudo ln -s /var/lib/snapd/snap /snap
确保 /snap/bin在 PATH 中,建议检查 PATH:
echo $PATH
# 如果没有 /snap/bin,则手动添加(临时生效):
export PATH=$PATH:/snap/bin
#建议:将 export PATH=$PATH:/snap/bin添加到你的 ~/.bashrc或 ~/.bash_profile中使其永久生效:
echo 'export PATH=$PATH:/snap/bin' >> ~/.bashrc
source ~/.bashrc
通过 Snap 安装 Certbot
sudo snap install --classic certbot
创建 Certbot 到 /usr/bin 的软链接
sudo ln -s /snap/bin/certbot /usr/bin/certbot
安装 Nginx 插件(让 Certbot 能自动修改 Nginx 配置):
sudo snap set certbot trust-plugin-with-root=ok
sudo snap install certbot-nginx
作用:
•trust-plugin-with-root=ok:允许 Certbot 使用需要 root 权限的插件(如 Nginx 插件)。
•certbot-nginx:这是 Certbot 的官方插件,用于自动发现你的 Nginx 配置,并在获取 SSL 证书后 自动修改 Nginx 的配置文件以启用 HTTPS。
关键点:这个插件是实现 “自动配置 Nginx” 的核心。
使用 Certbot 自动获取 SSL 证书并配置 Nginx(将 example.com替换为你的实际域名):
sudo certbot --nginx -d example.com -d www.example.com
检查 Certbot 版本
certbot --version
测试 Certbot 自动续期
sudo certbot renew --dry-run
#如果没有报错,说明自动续期机制正常
重要:
Let’s Encrypt 的证书只有 90 天有效期,必须定期续期。此命令验证你的续期配置是正确的。