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" #注意了需要当前用户对目录有写权限,如果没有添加一下权限