[{"content":"前言\r玩过 VPS 的朋友都知道，很多性价比极高的 NAT 小鸡（NAT VPS）虽然价格便宜、线路优秀，但它最大的痛点在于没有独立的公网 IP，更没有 80 和 443 端口的完整权限。\n如果你想在 NAT 机子上部署一个安全的网站或者服务，传统的 SSL 证书申请方法（如基于 HTTP-01 验证的 acme.sh 配合 Nginx）往往会直接卡死在 80 端口被占用的报错上。\n今天这篇文章，我就带大家从头开始：从 VPS 购买、域名购买，到如何利用 acme.sh 的 DNS 验证模式 完美绕过 80/443 端口限制，轻松搞定 HTTPS 证书！\n一、 基础准备：VPS 与域名购买\r在开始配置之前，我们需要准备好两样东西：一台 NAT VPS 和一个属于你自己的顶级域名。\n1.1 VPS 购买与注意事项\r选择建议：购买 NAT VPS 时，注意查看商家提供的端口映射规则。通常商家会分配给你几个特定的外部端口用于 SSH 连接。\n系统环境：推荐安装干净的 Debian 11/12 或 Ubuntu 22.04 系统。\n1.2 域名购买与 DNS 解析托管\r购买平台：你可以选择 Namesilo、Porkbun、Cloudflare 或国内的腾讯云/阿里云购买便宜的域名。\n关键步骤：为了方便后续使用 API 自动完成 DNS 验证，强烈建议将域名的 DNS 解析托管到 Cloudflare（免费且支持强大的 API 管理）。\n二、 痛点解析：为什么传统 HTTP 验证在 NAT 机上行不通？\r在深入教程前，我们先看一眼痛点：\n传统方式（HTTP-01）：CA 机构（如 Let\u0026rsquo;s Encrypt）会向你的服务器发送一个 HTTP 请求，必须通过你服务器的 80 端口 来验证域名归属。\nNAT 机的困境：NAT VPS 的 80/443 端口通常被母机占用，或者根本不对外开放。因此，配置 Nginx 监听 80 端口去跑验证这条路在 NAT 机上直接被堵死了。\n三、 核心绝招：使用 acme.sh 的 DNS 验证完美破局\r既然我们无法通过端口让外界访问我们的服务器，那能不能“证明”这个域名归我们所有呢？可以！通过在域名的 DNS 服务商那里添加一条 TXT 解析记录来证明。\n为了避免每次手动去后台加记录的繁琐，我们使用 acme.sh 脚本配合 Cloudflare 的 API Key 实现全自动 DNS 验证。\n3.1 在 NAT 机上安装 acme.sh\r登录你的 NAT VPS，依次执行以下命令安装 acme.sh（请将邮箱替换为你自己的）：\n# 安装 acme.sh\rcurl https://get.acme.sh | sh -s email=your_email@example.com\r# 让环境变量生效\rsource ~/.bashrc 3.2 配置 Cloudflare API 密钥\r登录你的 Cloudflare 账号，在个人资料页面生成一个具有 Zone DNS (编辑) 权限的 API Token。\n在终端中将 Token 和账号信息写入环境变量：\nexport CF_Token=\u0026#34;你的Cloudflare_API_Token\u0026#34;\rexport CF_Account_ID=\u0026#34;你的Cloudflare_Account_ID\u0026#34; 3.3 申请并签发证书（避开 80 端口的魔法时刻）\r万事俱备，现在我们可以直接通过 DNS 模式申请证书了，全程不需要开启任何 Nginx，也不需要占用 80 端口：\nacme.sh --issue --dns dns_cf -d yourdomain.com -d *.yourdomain.com 执行后，acme.sh 会自动通过 Cloudflare API 临时添加一个 TXT 解析，验证通过后会自动删除，安全又优雅！\n四、 安装证书到指定目录\r证书签发成功后，我们需要将其安装到你项目或反向代理（如 Nginx、Caddy、Xray 等）能够读取的目录中：\nacme.sh --install-cert -d yourdomain.com \\\r--key-file /root/cert/yourdomain.key \\\r--fullchain-file /root/cert/yourdomain.cer \\\r--reloadcmd \u0026#34;echo \u0026#39;Certificate updated successfully!\u0026#39;\u0026#34; 总结\r通过 acme.sh 的 DNS 验证模式，我们完美绕过了 NAT VPS 没有公网 IP、没有 80/443 端口权限的致命缺陷。不仅如此，acme.sh 还自带了自动续期功能，一劳永逸。\n希望这篇教程能帮各位 NAT 玩家顺利搭好自己的服务！如果你在配置过程中遇到问题，欢迎在评论区留言交流。\n","date":"2026-10-10T00:00:00Z","permalink":"/zh-cn/post/nat-vps-ssl-certificate/","title":"NAT VPS 域名证书申请指南：绕过 80/443 端口限制的 DNS 验证终极方案"}]