未备案域名申请SSL证书

环境信息

项目 内容

服务器 阿里云 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

  1. 获取 AccessKey

登录 [阿里云 RAM 控制台](https://ram.console.aliyun.com/users):

  • 创建/获取 AccessKey ID 和 AccessKey Secret

  • 确保用户有 `AliyunDNSFullAccess` 权限

  1. 设置环境变量

```bash

export Ali_Key="你的阿里云AccessKey ID"

export Ali_Secret="你的阿里云AccessKey Secret"

```


三、申请 SSL 证书

  1. 切换 CA 为 Let's Encrypt(避免 ZeroSSL 超时)

```bash

acme.sh --set-default-ca --server letsencrypt

```

  1. 申请通配符证书

```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\` --- 保存此文档,下次部署或排查问题时可参考。

相关推荐
李日灐2 小时前
<1>Linux基础指令:Linux 高频指令详解 + 文件与目录认知
linux·运维·服务器·开发语言·后端·命令
色空大师2 小时前
【Linux-安装nginx】
linux·运维·前端·nginx·部署
艾莉丝努力练剑2 小时前
【Linux线程】Linux系统多线程(七):<线程同步与互斥>线程同步(下)
java·linux·运维·服务器·c++·学习·操作系统
zzzyyy5382 小时前
Linux进程控制(1)
linux·运维·服务器
俺不要写代码2 小时前
Linux上一个简单的echo服务器搭建
linux·运维·服务器
努力努力再努力wz2 小时前
【MySQL入门系列】:不只是建表:MySQL 表约束与 DDL 执行机制全解析
android·linux·服务器·数据结构·数据库·c++·mysql
bukeyiwanshui2 小时前
20260416 DHCP以及DNS
linux·网络
IMPYLH2 小时前
Linux 的 printf 命令
linux·运维·服务器·bash
艾莉丝努力练剑2 小时前
【Linux加餐】mmap文件映射
linux·运维·服务器·c语言·c++·学习