🔒

使用 acme.sh 申请 TLS 证书(Debian_Linux)

使用acme.sh在Debian/Linux系统上申请TLS证书的完整教程,包括手动DNS验证和自动API验证两种方案,支持泛域名证书申请和自动续期。

一、核心准备

1. 必要条件 - 拥有一个可控域名(示例中 mydomain.com 需替换为你的域名) - 系统要求:Debian/Ubuntu 等 Linux 发行版(需 root 权限)

二、快速部署流程

1. 一键安装与环境配置

安装并绑定邮箱(替换 [email protected])
curl <https://get.acme.sh> | sh -s [email protected]
  • 验证安装:出现 Install success 表示成功
  • 邮箱修改:编辑 ~/.acme.sh/account.conf 调整邮箱
1. 配置证书颁发机构(推荐 ZeroSSL)
acme.sh --set-default-ca --server zerossl
  • 成功标识:输出 Changed default CA to: >
1. 启用自动续期
检查自动续期状态
crontab -l | grep "acme.sh --cron"
若无输出,手动添加(默认安装时已自动配置)
echo "0 0 <em> </em> * /root/.acme.sh/acme.sh --cron" | crontab -

---

三、证书申请方案 方案 A:手动 DNS 验证(适合无 API 权限)

1. 生成验证记录

acme.sh --issue --dns -d mydomain.com -d *.mydomain.com \\
    --yes-I-know-dns-manual-mode-enough-go-ahead-please
- 根据输出添加 acme-challenge 的 TXT 记录(需等待 DNS 生效,约 10 分钟) 2. 签发证书
acme.sh --renew --dns -d mydomain.com -d *.mydomain.com \\
    --yes-I-know-dns-manual-mode-enough-go-ahead-please

方案 B:自动 DNS API(推荐长期使用) 以 Cloudflare 为例:

1. 配置 API 凭据

export CF_Token="your_api_token"
    export CF_Account_ID="your_account_id"
    export CF_Zone_ID="your_zone_id"
2. 一键签发泛域名证书
acme.sh --issue --dns dns_cf -d mydomain.com -d *.mydomain.com
- 支持 50+ 服务商 API(如阿里云、GoDaddy)

---

四、证书文件与部署

1. 证书路径

~/.acme.sh/mydomain.com_ecc/
├── mydomain.com.key     # 私钥
├── fullchain.cer        # 完整证书链(推荐使用)
└── ca.cer               # 中间证书

1. 安全部署建议

  • 禁止直接引用.acme.sh目录:使用 -install-cert 命令复制到安全路径
acme.sh --install-cert -d mydomain.com \\
    --key-file /etc/ssl/private/key.pem \\
    --fullchain-file /etc/ssl/certs/cert.pem
  • Nginx 配置示例:
ssl_certificate /etc/ssl/certs/cert.pem;
    ssl_certificate_key /etc/ssl/private/key.pem;

---

五、关键注意事项

1. 续期监控 - 每日自动续期检查(通过 cron 实现) - 手动测试续期:acme.sh --cron --debug 2. 证书安全 - 私钥权限设置为 600:chmod 600 mydomain.com.key - 避免 API 令牌泄露(Cloudflare 建议使用临时 API Token) 3. 兼容性说明 - ECC 证书兼容性:现代浏览器/服务器均支持,RSA 证书可通过 -keylength 2048 生成

---

六、扩展支持

  • 多服务部署:支持自动部署到 Nginx/Apache/Docker 等
  • 日志排查:通过 -debug 参数输出详细信息
  • 官方文档:
注:若需适配其他 DNS 服务商(如阿里云、AWS),参考 /root/.acme.sh/dnsapi/ 中的示例脚本。
>
← 返回博客列表 回到首页