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


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

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言