Ubuntu 申请免费的SSL证书,并能3个月自动续期

Let’s Encrypt 是一个非常安全且值得信赖的证书颁发机构(CA)。

它提供的 SSL/TLS 证书在技术上与商业证书(如 DigiCert, GeoTrust, Sectigo 等)提供的加密强度完全相同。它们都遵循相同的行业标准(X.509标准),提供相同的加密级别(例如 RSA 或 ECC 密钥)。

Cloudflare,可以使用 acme.sh 的 dns_cf 模式轻松申请证书(无需开启 80/443 端口,也不需要备案)
一次配置,永久自动续期!

步骤 1:获取 Cloudflare API Key(或 Token)
# 推荐使用 API Token(权限更小更安全)
1、登录 Cloudflare 后台:https://dash.cloudflare.com/
2、点击右上角头像 → "My Profile"
3、选择左侧 “API Tokens” → 创建 Token
4、使用模板 “Edit zone DNS”
5、选择你要的域名(如 free-ai.top)
6、生成后保存你的 Token
步骤 2:安装 acme.sh(如未安装)
curl https://get.acme.sh | sh
source ~/.bashrc
步骤 3:设置 Cloudflare API 环境变量
# 如果你用的是 API Token:
export CF_Token="your_cloudflare_token"
# 复制生成后的 Token(不要关闭页面前忘记保存!)
export CF_Token="你刚刚复制的 token"
acme.sh --issue --dns dns_cf -d xxxx.free-ai.top
# 安装证书到 Nginx:
acme.sh --install-cert -d xxx.free-ai.top \
  --key-file       /docker-compose-app/nginx/certs/xxx.free-ai.top_ssl.key \
  --fullchain-file /docker-compose-app/nginx/certs/xxx.free-ai.top_ssl.crt \
  --reloadcmd     "docker restart nginx-ds"
# 以后 acme.sh 会自动续签证书(通常每 60 天签一次),并自动执行:(重启一下nginx)
docker restart nginx-ds

阿里云域名也是可以使用 acme SSL 证书的

# 需要配置阿里云 DNS API
1、登录阿里云 RAM 控制台
进入:https://ram.console.aliyun.com/
2、新建 RAM 用户
在左侧点击 用户管理 → 创建用户
用户登录名称:acme-dns
勾选:使用永久 AccessKey 访问
不需要控制台登录权限(只用于 API 调用)
点击 确认 创建
3、获取 AccessKey
创建完成后,你会看到:
AccessKey ID
AccessKey Secret
重要:Secret 只会显示一次,请立刻复制保存到一个安全的地方。
4、授予 DNS 管理权限
在 用户管理 页面找到刚才的用户 acme-dns
点击 添加权限 按钮
在权限策略列表搜索:
AliyunDNSFullAccess(意思是阿里云云解析的完整访问权限,适合 acme.sh 自动添加 TXT 记录)
勾选后点击 确定 授权
在 Ubuntu 上设置环境变量:

#返还根目录
cd ~
#使用国内节点获得acme.sh
git clone https://gitee.com/neilpang/acme.sh.git
#进入acme.sh进行安装
cd acme.sh
./acme.sh --install
source ~/.bashrc
# 改回 Let’s Encrypt(不需要 ZeroSSL 账号)
acme.sh --set-default-ca --server letsencrypt
# 需要配置一下阿里云的RAM 用户连接 API 信息
export Ali_Key="阿里API_KEY"
export Ali_Secret="阿里API_Secret"
# 申请域名证书
acme.sh --issue --dns dns_ali -d xxx.free-ai.top
#申请成功后证书会保存在:
~/.acme.sh/xxx.free-ai.top/
#假设你的 Web 服务是 Nginx:
acme.sh --install-cert -d xxx.free-ai.top \
  --key-file       /home/aliketen/docker-compose-app/nginx/certs/xxx.free-ai.top_ssl.key \
  --fullchain-file /home/aliketen/docker-compose-app/nginx/certs/xxx.free-ai.top_ssl.crt \
  --reloadcmd     "docker restart nginx-ds"
#注意了需要当前用户对目录有写权限,如果没有添加一下权限