环境信息
项目 内容
服务器 阿里云 ECS
操作系统 Alibaba Cloud Linux 3
域名 `guochuanlin.top` + `*.guochuanlin.top`(通配符)
域名备案状态 未备案
证书颁发机构 Let's Encrypt
验证方式 阿里云 DNS API 自动验证
Web 服务器 Nginx
HTTPS 端口 8443(未备案域名无法使用 443)
一、安装 acme.sh
```bash
安装 acme.sh
curl https://get.acme.sh | sh
重新加载环境
source ~/.bashrc
验证安装
acme.sh --version
```
二、配置阿里云 DNS API
- 获取 AccessKey
登录 阿里云 RAM 控制台(https://ram.console.aliyun.com/users):
-
创建/获取 AccessKey ID 和 AccessKey Secret
-
确保用户有 `AliyunDNSFullAccess` 权限
- 设置环境变量
```bash
export Ali_Key="你的阿里云AccessKey ID"
export Ali_Secret="你的阿里云AccessKey Secret"
```
三、申请 SSL 证书
- 切换 CA 为 Let's Encrypt(避免 ZeroSSL 超时)
```bash
acme.sh --set-default-ca --server letsencrypt
```
- 申请通配符证书
```bash
acme.sh --issue --dns dns_ali -d guochuanlin.top -d *.guochuanlin.top --force --dnssleep 180
```
成功标志:
```
Thu Apr 16 07:10:28 AM CST 2026 Cert success.
```
四、安装证书到 Nginx
- 创建 SSL 目录
```bash
sudo mkdir -p /etc/nginx/ssl
```
- 安装证书并配置自动续期
```bash
acme.sh --install-cert -d guochuanlin.top \
--key-file /etc/nginx/ssl/guochuanlin.top.key.pem \
--fullchain-file /etc/nginx/ssl/guochuanlin.top.fullchain.pem \
--reloadcmd "sudo systemctl reload nginx"
```
证书路径:
文件 路径
私钥 `/etc/nginx/ssl/guochuanlin.top.key.pem`
完整证书链 `/etc/nginx/ssl/guochuanlin.top.fullchain.pem`
五、配置 Nginx
- 创建站点配置文件
```bash
sudo tee /etc/nginx/conf.d/guochuanlin.top.conf << 'EOF'
server {
listen 8443 ssl;
server_name guochuanlin.top *.guochuanlin.top;
ssl_certificate /etc/nginx/ssl/guochuanlin.top.fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/guochuanlin.top.key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
root /var/www/worker-helper;
index index.html index.htm;
location / {
try_files uri uri/ =404;
}
}
EOF
```
- 启动/重载 Nginx
```bash
启动 Nginx
sudo systemctl start nginx
设置开机自启
sudo systemctl enable nginx
检查配置语法
sudo nginx -t
重载配置
sudo systemctl reload nginx
```
六、设置网站目录权限
```bash
设置目录权限(关键步骤,避免 403)
sudo chown -R nginx:nginx /var/www/worker-helper
sudo chmod -R 755 /var/www/worker-helper
如果还有 403,检查 SELinux
sudo setenforce 0
或永久关闭
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
```
七、开放阿里云安全组
登录 阿里云 ECS 控制台(https://ecs.console.aliyun.com) → 安全组 → 配置规则:
类型 端口范围 授权对象 描述
自定义 TCP 8443 0.0.0.0/0 HTTPS 未备案域名
八、验证 HTTPS
本地测试
```bash
curl -k https://localhost:8443
```
浏览器访问
```
```
成功标志: 显示 🔒 安全锁,无"不安全"警告。
九、证书管理命令
查看证书信息
```bash
证书有效期
openssl x509 -in /etc/nginx/ssl/guochuanlin.top.fullchain.pem -noout -dates
证书详情
openssl x509 -in /etc/nginx/ssl/guochuanlin.top.fullchain.pem -text -noout
```
测试自动续期
```bash
acme.sh --renew -d guochuanlin.top --dry-run
```
查看定时任务
```bash
crontab -l | grep acme
```
强制续期
```bash
acme.sh --renew -d guochuanlin.top --force
```
十、证书文件备份
重要文件备份:
```bash
备份到 /root 目录
sudo cp /etc/nginx/ssl/guochuanlin.top.key.pem /root/ssl-backup/
sudo cp /etc/nginx/ssl/guochuanlin.top.fullchain.pem /root/ssl-backup/
```
常见问题解决
问题 原因 解决
DNS 验证超时 TXT 记录传播慢 加 `--dnssleep 180`
ZeroSSL 超时 CA 响应慢 切换 Let's Encrypt
403 Forbidden 权限/SELinux `chown nginx:nginx` + `setenforce 0`
浏览器无法访问 安全组未开 阿里云控制台开放 8443
证书已存在 重复申请 加 `--force` 或先 `--remove`
关键路径总结
用途 路径
acme.sh 原始证书 `~/.acme.sh/guochuanlin.top/`
Nginx 使用证书 `/etc/nginx/ssl/`
Nginx 配置 `/etc/nginx/conf.d/guochuanlin.top.conf`
网站源码 `/var/www/worker-helper/`
Nginx 日志 `/var/log/nginx/error.log`
保存此文档,下次部署或排查问题时可参考。