跳转到主要内容
← 返回资讯中心

在 NAT VPS 上部署 HTTPS 網站:Nginx + acme.sh 實戰

发布于 2026/10/8 04:15:08 · 更新于 2026/10/8 04:15:08

在 NAT VPS 上跑 HTTPS 網站,關鍵是兩件事:把端口映射到機內 80 / 443,以及用對的憑證簽發方式。

第 1 步:確認端口映射

  • 在訂單詳情頁,把一個可映射的公網端口指向機內 80(HTTP)或 443(HTTPS)。
  • 對外訪問形式是 http://公網IP:你的端口,而不是預設的 80 / 443。
  • 這一步不做,外網永遠打不開。

第 2 步:簽憑證請用 DNS-01

  • Let's Encrypt 的 HTTP-01 驗證需要訪問 80 端口;NAT 環境的公網端口由系統分配,通常拿不到 80。
  • 因此建議用 DNS-01:用 acme.sh 的 dns_cf(Cloudflare)等插件,透過 DNS TXT 記錄完成驗證。
  • DNS-01 的另一個好處是支援泛域名(例如 *.example.com)。

第 3 步:Nginx 反向代理

  • Nginx 監聽機內 80(也就是你映射出去的那個公網端口對應的內部端口)。
  • 由 Nginx 終結 TLS,再反向代理到你的應用(例如 127.0.0.1:3000)。
  • 憑證指向 acme.sh 產出的檔案;續期後 reload Nginx。

第 4 步:DDNS(可選)

  • 出口 IP 每天輪換,若用域名訪問,請用 DDNS 讓 A 記錄跟隨當前出口 IP。
  • 只用 IP:端口 訪問則不需要。

常見坑

  • 憑證簽好了但瀏覽器仍報錯:確認訪問的是 https:// 且端口正確。
  • 續期失敗:DNS-01 的 API Token 權限不足或已過期。
  • 完全打不開:先確認映射存在、Nginx 在跑、機內防火牆放行。

下一步