🌐 阿里云 Linux 服务器 Let's Encrypt 免费 SSL 证书完整部署指南
适用系统:Alibaba Cloud Linux 3(兼容 CentOS/RHEL)
Web 服务器:Nginx
更新时间:2025 年 11 月
作者:DevOps Guide
✅ 一、前提条件
在开始前,请确保满足以下条件:
| 要求 | 说明 |
|---|---|
| 1. 阿里云 ECS 实例 | 已创建,操作系统为 Alibaba Cloud Linux 3 |
| 2. 域名已解析 | yourdomain.com 的 A 记录指向 ECS 公网 IP |
| 3. 安全组开放端口 | 入方向允许 80 (HTTP) 和 443 (HTTPS)(来源:0.0.0.0/0) |
| 4. 域名备案(中国大陆地域) | 若 ECS 位于中国内地(如杭州、北京),必须完成 ICP 备案 |
| 5. 已安装 Nginx | 且能通过 http://yourdomain.com 访问 |
🔍 验证域名解析:
1dig yourdomain.com +short 2# 应返回你的 ECS 公网 IP 3
🚀 二、完整操作流程
步骤 1:安装 Nginx(如未安装)
1# 安装 Nginx 2sudo dnf install -y nginx 3 4# 启动并设置开机自启 5sudo systemctl start nginx 6sudo systemctl enable nginx 7
步骤 2:配置 Nginx 站点(添加 server_name)
1sudo vim /etc/nginx/conf.d/yourdomain.com.conf 2
写入以下内容:
1server { 2 listen 80; 3 server_name yourdomain.com; # ← 必须包含你要申请证书的域名 4 root /usr/share/nginx/html; 5 index index.html; 6} 7
测试并重载:
1sudo nginx -t 2sudo systemctl reload nginx 3
✅ 此时应能通过浏览器访问
http://yourdomain.com
步骤 3:安装 Certbot
1# 安装 EPEL 仓库 2sudo dnf install -y epel-release 3 4# 安装 Certbot 及 Nginx 插件 5sudo dnf install -y certbot python3-certbot-nginx 6
步骤 4:申请并安装 SSL 证书
1sudo certbot --nginx -d yourdomain.com 2
执行时会提示:
- 输入邮箱(用于过期提醒)
- 同意服务条款(按
A) - 是否重定向 HTTP → HTTPS(建议选 Yes)
✅ 成功后,Nginx 会自动启用 HTTPS,访问
https://yourdomain.com应显示安全锁图标。
步骤 5:验证证书信息
1sudo certbot certificates 2
输出示例:
1Certificate Name: yourdomain.com 2 Expiry Date: 2026-02-20 12:34:56+00:00 (VALID: 89 days) 3 Certificate Path: /etc/letsencrypt/live/yourdomain.com/fullchain.pem 4 Private Key Path: /etc/letsencrypt/live/yourdomain.com/privkey.pem 5
步骤 6:配置自动续期(关键!)
6.1 测试续期流程(安全,不会真续)
1sudo certbot renew --dry-run 2
✅ 应看到:Congratulations, all simulated renewals succeeded.
6.2 设置定时任务
1sudo crontab -e 2
在打开的编辑器中按 i 进入插入模式,粘贴以下内容:
10 2 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx" 2
保存退出:
- 按
ESC - 输入
:wq并回车
6.3 验证 cron 是否设置成功
1sudo crontab -l 2
应输出:
10 2 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx" 2
🔍 三、常见问题排查
❌ 问题 1:申请证书时超时(Timeout during connect)
错误示例:
1Fetching http://yourdomain.com/.well-known/acme-challenge/...: Timeout 2
原因与解决:
| 原因 | 解决方案 |
|---|---|
| 阿里云安全组未开 80 端口 | 控制台 → 安全组 → 添加 80 入站规则 |
| 域名未备案(中国内地 ECS) | 备案域名,或改用 DNS 验证(见附录) |
| DNS 未解析到公网 IP | 检查 A 记录:dig yourdomain.com |
| 本地防火墙阻止 | 检查:sudo firewall-cmd --list-ports(Alibaba Cloud Linux 默认关闭) |
❌ 问题 2:Certbot 找不到 server_name
错误:No matching server blocks located
解决:
- 确保 Nginx 配置中
server_name精确包含yourdomain.com - 配置文件必须在
/etc/nginx/conf.d/或被nginx.conf的include包含
❌ 问题 3:自动续期失败
排查步骤:
1# 查看 cron 执行日志 2sudo grep CRON /var/log/cron 3 4# 查看 certbot 日志 5sudo tail -n 20 /var/log/letsencrypt/letsencrypt.log 6 7# 手动运行续期(不静默) 8sudo certbot renew 9
📎 附录:替代方案 —— DNS 验证(无需 80 端口)
适用于:未备案域名 或 无法开放 80 端口 的场景
步骤 A:获取阿里云 AccessKey
- 进入 RAM 控制台
- 创建用户,授权
AliyunDNSFullAccess - 获取
AccessKey ID和AccessKey Secret
步骤 B:配置 DNS 插件
1# 安装插件 2sudo dnf install -y certbot-dns-alidns 3 4# 创建凭证文件 5mkdir -p ~/.secrets 6cat > ~/.secrets/alidns.ini <<EOF 7dns_alidns_access_key = YOUR_ACCESS_KEY_ID 8dns_alidns_secret_key = YOUR_ACCESS_KEY_SECRET 9EOF 10 11chmod 600 ~/.secrets/alidns.ini 12
步骤 C:申请证书
1sudo certbot certonly \ 2 --dns-alidns \ 3 --dns-alidns-credentials ~/.secrets/alidns.ini \ 4 -d yourdomain.com 5
步骤 D:手动配置 Nginx HTTPS
编辑 /etc/nginx/conf.d/yourdomain.com.conf,添加:
1server { 2 listen 443 ssl; 3 server_name yourdomain.com; 4 root /usr/share/nginx/html; 5 6 ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; 7 ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; 8} 9
重载 Nginx:
1sudo nginx -t && sudo systemctl reload nginx 2
⚠️ DNS 验证方式 仍需配置自动续期 cron(同上)
✅ 四、总结
| 步骤 | 命令/操作 | 状态 |
|---|---|---|
| 1. 安装 Nginx | sudo dnf install nginx | ✅ |
| 2. 配置站点 | 创建 /etc/nginx/conf.d/*.conf | ✅ |
| 3. 安装 Certbot | sudo dnf install certbot... | ✅ |
| 4. 申请证书 | sudo certbot --nginx -d yourdomain.com | ✅ |
| 5. 设置自动续期 | sudo crontab -e + 添加任务 | ✅ |
| 6. 测试续期 | sudo certbot renew --dry-run | ✅ |
🎉 完成!你的网站现在拥有免费、自动更新的 HTTPS 加密。
🔗 官方参考:
💡 提示:每 3 个月手动运行一次
sudo certbot certificates检查到期时间,确保万无一失。
《🌐 阿里云 Linux 服务器 Let's Encrypt 免费 SSL 证书完整部署指南》 是转载文章,点击查看原文。