僅在 LAN 上運行網站

僅在 LAN 上運行網站

這是一個大問題,所以我只是在尋找一個高級概述答案來幫助我研究我不知道的部分。

本質上,問題是這樣的:我需要一台專用的 Mac Mini(或類似的 macOS 機器)並用它來託管一個只有同一本地網路上的使用者才能訪問的網站。

我的第一個反應是購買一個網域名稱(和憑證)並將其指向我知道我的伺服器所在的本地地址(例如 10.10.10.152)。這樣,任何嘗試訪問該網域的人都將被本地重定向到我的網站(如果他們位於正確的網路上)。

這行得通嗎?如果是這樣,請取得網域、安裝憑證並將其指向本機 IP 的主要步驟是什麼?

答案1

購買一個網域名稱(和憑證)並將其指向我知道我的伺服器所在的本地地址(例如 10.10.10.152)。這樣,任何嘗試訪問該網域的人都將被本地重定向到我的網站(如果他們位於正確的網路上)。

可以,但是絕對沒有必要買任何東西。

您可以設定本機 DNS,例如service.example.org(如果你擁有範例.org), 或者服務區域網路沒有自己的域名。將 A 記錄指向您的私人 Web 伺服器。

如果您需要 HTTPS (TLS),您可以自簽名證書並明確信任每個客戶端的該證書,或者啟動一個新 CA(使用 OpenSSL 只需一分鐘),為證書簽名服務區域網路並將 CA 根憑證部署到您的客戶端作為信任錨。

答案2

根據評論討論,您可以使用例如 Apache 並設定類似:使用模組mod_authz_hostRequire指令。

<Directory /var/www/web/>
  Require host localhost
  Require ip 127.0.0.1
  Require ip 192.168.0
</Directory>

(上面我假設你的本地網路是192.168.0.0/24

localhost/127.0.0.1此配置將限制對網路中所有主機的訪問192.168.0.0/24

答案3

我不確定註冊/配置網域併購買證書的想法是偶然還是故意的 - 但在缺乏網路配置和系統管理經驗的情況下,這可能是實現您目標的最短路徑。

替代方法是

  • 在互聯網上設定網站,僅允許存取 ACME 路徑並從 LetsEncrypt 取得免費憑證(這也要求您擁有有效的公共 DNS 記錄 - 因此是相當靜態的 IP 或動態 DNS 服務)
  • 建立您自己的憑證授權機構,將 CA 憑證分發給客戶端並使用它來簽署服務憑證
  • 或根本不使用 TLS(不建議)。

您將需要一個包含記錄的註冊網域才能從第三方憑證授權單位取得憑證。如果您選擇其他方法之一,那麼您不需要註冊網域/可公開存取的 DNS 記錄 - 您可以(例如)使用 dnsmasq 作為您的內部 DNS(輕鬆配置特定 DNS 名稱的覆蓋)。

只要您的網路連線不允許外部存取主機的 IP 位址,您就不需要額外的安全控制,但現在新增它們可能會防止將來發生事故。

相關內容