通过 DNS 验证申请 Let’s Encrypt ECC 证书适合：Debian / Ubuntu 系统，Nginx HTTPS 配置，无法使用 HTTP 验证的场景。本文提供完整教程、常见问题解答。简介在 Nginx 环境中，想要启用 HTTPS，必须申请 SSL/TLS 证书。 本文演示如何使用 acme.sh 通过 DNS 手动验证方式申请 Let’s Encrypt ECC 证书，并在 Nginx 上配置。项目开源地址：https://github.com/acmesh-official/acme.sh适合场景：没有公网 80 端口或无法使用 HTTP 验证想使用 ECC 证书提升性能Debian / Ubuntu 系统配置 Nginx HTTPS 服务1.安装 acme.shcurl https://get.acme.sh | sh ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh acme.sh --version2.切换到 Let’s Encrypt 证书acme.sh --set-default-ca --server letsencrypt acme.sh --info3.申请 ECC 证书（DNS 手动验证）acme.sh --issue -d example.com \ --dns \ --ecc \ --yes-I-know-dns-manual-mode-enough-go-ahead-please把示例 example.com 域名换成你自己的记下返回的 TXT 值，用于 DNS 验证。4.添加 DNS TXT 记录类型主机记录记录值TXT_acme-challenge.example.com返回的 TXT 值注意不同 DNS 服务商可能要求写完整域名或只写子域名。点击下方：链接到 DNS 解析或 Cloudflare 配置教程：Cloudflare TXT 记录配置指南域名解析常见问题解决5.验证 DNS 是否生效nslookup -type=TXT _acme-challenge.example.com 1.1.1.1返回 TXT 值即生效，否则等待 DNS 同步。如果提示NXDOMAIN错误原因：TXT 记录未添加DNS 未生效主机记录写错6.签发 ECC 证书acme.sh --renew -d example.com \ --yes-I-know-dns-manual-mode-enough-go-ahead-please \ --ecc 证书路径：~/.acme.sh/example.com_ecc/ ├─ fullchain.cer ├─ example.com.key └─ ca.cer7.Nginx 配置 SSL 证书复制证书：mkdir -p /root/nginx/ssl cp ~/.acme.sh/example.com_ecc/fullchain.cer /root/nginx/ssl/example.com.cer cp ~/.acme.sh/example.com_ecc/example.com.key /root/nginx/ssl/git.example.com.key以你的nginx 证书实际路径为准8.最后如果想签发新的证书按照以下方法：1.强制签发新证书acme.sh --renew -d example.com \ --yes-I-know-dns-manual-mode-enough-go-ahead-please \ --ecc --force 每次使用 --force 会生成新的 TXT 验证值，需要重新添加 DNS。2.验证DNS生效nslookup -type=TXT _acme-challenge.example.com 1.1.1.1返回 TXT 值即生效，否则等待 DNS 同步。3.下发证书acme.sh --renew -d example.com \ --yes-I-know-dns-manual-mode-enough-go-ahead-please \ --ecc以上就是本文全部内容