繁體中文(香港)
  • cloudflare
  • cloudflare-tunnel
  • https
  • local-debugging
  • custom-hostname

無痛本地調試:使用 Cloudflare Tunnel 實現 HTTPS 和自定義主機名

這篇文章介紹如何使用 Cloudflare Tunnel 實現 HTTPS 和自定義主機名,以便無痛的本地調試。

Yijun
Yijun
Developer

在我們的日常開發中,我們經常使用 http://localhost 來訪問和調試我們的應用程式,這在大多數情況下已經足夠。然而,在如下情況下,我們可能需要使用 HTTPS 和自定義主機名來調試我們的應用程式:

  • 當你的應用程式使用需要 HTTPS 的 API(例如 Web Crypto API 或其他需要 HTTPS 的第三方庫)
  • 當你想要整合的第三方服務要求你提供一個全球可訪問的基於 HTTPS 的 API 介面,你需要調試這個介面

市面上有很多解決這些問題的方案,但大多數方案都複雜且容易出錯。在這裡,我想介紹如何使用 Cloudflare Tunnel 快速地為本地開發使用 HTTPS 和自定義主機名。

什麼是 Cloudflare Tunnel

Cloudflare TunnelCloudflare 提供的一項服務,允許你安全地將你的基礎設施連接到 Cloudflare 網絡。它實質上在你的伺服器和 Cloudflare 的全球網絡之間創建了一個安全且高效的連接,確保你的網絡流量得到保護和優化。

通過使用 Cloudflare Tunnel,你可以輕鬆地將你的本地開發機器連接到 Cloudflare 的全球網絡。之後,你可以將你的域名託管在 Cloudflare 上,並通過 Cloudflare Tunnel 將對該域名的請求轉發到你的本地機器。

先決條件

在開始之前,請確保你已經:

  • 已擁有一個域名,並在你的註冊商(購買域名的地方)禁用 DNSSEC
  • 已創建一個 Cloudflare 帳戶

注意:在本教程中,為演示目的,我們假設使用的是 demo.com 作為我們的域名。

添加網站到 Cloudflare

首先,你需要使用你的 Cloudflare 帳戶登錄到 Cloudflare 控制台 並從左側菜單中選擇 “Website” 選項。然後,點擊頁面上的 “Get started” 按鈕(如果已經有記錄,點擊 “Add website”)。按照提示完成使用你擁有的域名添加網站。成功添加網站後,你會看到以下內容:

Website (inactive)

如圖所示,添加的網站尚未激活。你需要按照頁面上的指南登錄到你的域名註冊商,並更新域名的名稱伺服器來激活你的網站。

Godaddy 上的域名為例:

進入域名設置頁面,訪問 DNS 標籤下的 “Nameservers” 選項,並將名稱伺服器更改為指南中顯示的值:

Nameservers settings

更改後,等待一段短時間,Cloudflare 上對應的網站將會被激活:

Website active

配置完這些內容後,你的域名將被託管在 Cloudflare 上,並且 Cloudflare 將自動啟用該域名的 HTTPS。

創建隧道

返回 Cloudflare 控制台首頁,點擊左側菜單中的 "Zero Trust",並選擇 "Tunnels" 位於 'Access' 目錄下。然後在頁面中點擊 "Add a tunnel",並輸入任何隧道名稱(例如 my-dev-tunnel)。根據頁面上的提示,將你的本地開發機器連接到 Cloudflare Tunnel。

Install tunnel

以 MacOS 為例,打開終端並執行頁面顯示的命令:

如果你的機器之前已安裝過 "cloudflared",則無需執行 brew install cloudflare/cloudflare/cloudflared

Tunnel installed

隨後,在終端中執行 cloudflared tunnel list,你會看到你的機器已經連接到 tunnel:

List tunnels

將流量路由到創建的隧道

創建 Tunnel 後,我們將配置該 Tunnel 的路由規則。

假設我們的本地應用程式運行在 http://localhost:3000 端口上,我們想要將所有對 https://dev.demo.com 的請求轉發到本地應用程式運行的端口。

首先,我們返回到我們的隧道頁面,找到我們剛剛創建的隧道,點擊右側的三點按鈕並選擇 "Config"。

Config entry

根據我們的需求填寫相關配置:

Add public hostname page

此配置將地址 dev.demo.com 路由到我們機器上的 http://localhost:3000。然後點擊 "Save hostname"。

短暫等待後,訪問 https://dev.demo.com,然後會看到運行在我們本地機器上的應用程式:

Local app

總結

通過這個教程,你現在應該能夠輕鬆地在本地開發環境中實現 HTTPS 和自定義主機名,而不必擔心複雜的配置和錯誤。希望你能從這個教程中受益!