环境信息
项目 内容
服务器 阿里云 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 1. 创建 SSL 目录 \`\`\`bash sudo mkdir -p /etc/nginx/ssl \`\`\` 2. 安装证书并配置自动续期 \`\`\`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 1. 创建站点配置文件 \`\`\`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 \`\`\` 2. 启动/重载 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 \`\`\` 浏览器访问 \`\`\` https://guochuanlin.top: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\` --- 保存此文档,下次部署或排查问题时可参考。