未备案域名申请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

```

  1. 安装证书并配置自动续期

```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

```

  1. 启动/重载 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`


保存此文档,下次部署或排查问题时可参考。

相关推荐
动力 continue2 小时前
Linux 基础篇 · 压缩打包与用户管理
linux·服务器·基础命令linux
NJCloud4 小时前
Ansible(三)——Zabbix 监控系统部署与敏感信息加密
linux·运维·chrome·信息可视化·ansible·zabbix
ltl4 小时前
Cgroups v2:为什么内存限制设了,宿主机数据库还是被 OOM
linux
NJCloud5 小时前
TiDB 集群部署与 MySQL 兼容性适配实战
linux·运维·数据库·mysql·tidb
2401_868534785 小时前
UNIX常用命令英文全称与中文解释整理
linux·运维
阿祖zu6 小时前
开源项目-让本地 Codex 临时接管远程 Linux 服务,实现快速运维
linux·gpt·agent
Android系统攻城狮8 小时前
Linux PipeWire深度解析之pw_factory_create_object调用流程与实战(七十二)
linux·音频进阶·pipewire音频进阶
lsh曙光8 小时前
playbook剧本(2)--Ansible变量
linux·运维·网络
lengjingzju8 小时前
编译与调试完全指南—第14章 系统配置与调优
linux
大鹏的NLP博客9 小时前
通用 Linux 嵌入式板端 C/C++ ABI 与 Glibc 依赖治理规范
linux·c++·交叉编译