檢查本機網路上的 TLS 憑證、自簽章憑證和 CA

檢查本機網路上的 TLS 憑證、自簽章憑證和 CA

我對 SSL 和 TLS 憑證幾乎一無所知。對於那個很抱歉。

我的公司是這樣問我的:

  1. 他們需要在本地網路上放置一台伺服器,全國各地的人們都可以透過 VPN 存取該伺服器。
  2. 他們希望該伺服器使用 HTTPS 進行通訊。
  3. 他們希望伺服器擁有由經過認證的 CA 創建的 TLS 憑證。
  4. 他們告訴我該伺服器是 Microsoft IIS 伺服器。

到目前為止我發現了什麼:

  1. 不可能擁有由經過認證的 CA 為server.mydomain.local無法從 Internet 存取位址的 Intranet 伺服器建立 SSL 憑證。
  2. 為該伺服器擁有 SSL 證書的唯一方法是自簽名證書,但這些證書並不被 iOS 等設備信任。

我需要的是確認我是對的,如果不對,如何解決這個將死問題。

謝謝

答案1

您是對的,公共 CA 只會向公共網域頒發憑證(因為這是他們能夠驗證的)。但是,您忽略了這並不一定與伺服器是否可公開存取有關,甚至與伺服器是否具有公用 IP 位址也不一定有關。伺服器不必public 以取得公共網域名稱。

CA 只關心驗證 URL 中的名稱的所有權。一些CA(例如 Let's Encrypt)通常透過 HTTP 連接到伺服器來實現此目的(儘管這不再是唯一的選擇)。但許多其他 CA 將允許您僅驗證整個網域的所有權(可能透過 Whois 記錄),然後為任何子網域自由頒發證書,甚至是沒有 Web 伺服器或沒有任何公開內容的子網域可訪問,甚至是根本不存在的子域。

所以我假設該公司已經有一個網站,因此也有一個公共網域。您可以採取多種方式來實現這一目標,具體取決於公司的喜好:

  • 您可以讓伺服器使用常規公共 IP 位址並將其放入 DNS 中,就像往常一樣...然後讓伺服器拒絕所有不是透過 VPN 建立的連接,例如,使用 Windows 防火牆或某些特定於 IIS 的設定。

    (大多數 VPN 系統可以配置為透過安全隧道路由任何 IP 位址範圍,無論 IP 位址是“公共”還是“私人”,都沒有關係。透過公司 VPN 路由公司的公共 IP 範圍是很正常的事情去做。 )

  • 您可以建立一個指向內部 IP 位址的子網域(例如,server.corp.mydomain.com可以是指向 192.168.7.1 的公用子網域,這是一個只能透過 VPN 存取的私人 IP 位址),但這仍然不會阻止它擁有已頒發公開有效的HTTPS 證書。

    (這不需要任何特殊的 DNS 設置,您只需將網域指向您想要的任何地址即可。)

  • 您可以在私人 IP 位址上擁有實際的 Web 伺服器,但在公用 IP 位址上使用「反向代理」前端伺服器。反向代理可以處理基於 IP 的存取以及 SSO 或密碼身份驗證。它甚至可以代表真正的私有伺服器處理基於 Let's Encrypt HTTP 的憑證授權。

    (我們使用此方法為一些生鏽的舊Web 應用程式提供安全的HTTPS 存取- 其中一個應用程式仍然在Server 2003 上運行,根本無法處理現代瀏覽器,相反,反向代理提供了必要的TLS 1.2 支持以及SAML 身份驗證。

(還有其他選擇。除了公共CA 之外,任何人都可以創建自己的CA,而大多數運行Microsoft AD 的企業網路實際上都會有一個– 唯一的問題是讓設備信任該CA,但對於企業發行的iPhone,應該透過公司使用的任何「行動裝置管理」系統都可以輕鬆完成,但不要告訴人們在個人系統上安裝公司 CA...)

相關內容