
不確定我在這裡使用了正確的術語,這基本上就是我問的原因(使用正確的術語我肯定可以用谷歌搜尋它)。
我有一台Windows 2008的“一台大伺服器”,上面有幾個虛擬機器(linux、win7、win2k8)。可以使用公用 IP 位址存取該伺服器。我想啟用以下功能,但不知道從哪裡開始:
- 將網站放置在不同的虛擬機器上(即,VM1 託管 a.com,VM2 託管 b.com)
- 網站應使用 http 和 https (ssl) 協議
- 在每個虛擬機器上允許遠端桌面或類似的 RDP
- 允許每台電腦使用其他協議,例如 webdav、scp 或 ftp
我有點假設我需要一個 VPN 來進行遠端桌面訪問,並且我需要某種基於主機或基於主機 + 基於協定的 NAT(如果是這樣的話)。
這似乎已經做過一百萬次了,我只是不知道從哪裡開始,使用什麼軟體,或者只是不知道要谷歌搜尋什麼。另外,我擔心 SSL 不會以這種方式運作,因為主機名稱在握手之前不可見。
答案1
您的問題確實有很多內容要涵蓋,但我將重點放在 SSL 網站部分,因為它具有超越技能水平/知識的真正限制;如果您需要 VPN 配置、WebDAV、FTP 等方面的特定幫助,那麼將問題的其餘部分分解為更小的部分是有意義的。
如果您只計劃託管幾個 SSL 網站,或者它們將是通配符網站(即 *.example.com),並且您前面有一個反向代理伺服器,那麼您可以堅持使用一個公共 IP 位址。如果您需要多個網域(example.com、example.net、foo.com、bar.com 等),那麼您或許可以取得安裝在反向代理程式上的主題備用名稱 (SAN) 或 UCC 憑證。有一個方便的圖表在維基百科上,向您顯示流行的證書供應商的清單以及您透過他們的產品獲得的網域數量; Global Sign 提供最多 40 張憑證。
您也可以使用替代連接埠(https://vm1:443
等https://vm2:444
)和適當的 NAT 規則(在虛擬機器前面的防火牆中),但這對於公共網站通常是不可取的。
現在,您不能只讓伺服器使用 SSL 處理不同網站的原因是 SSL 的工作原理:SSL 對話(握手)發生前主機頭(“主機名稱”)從客戶端發送並由終止 SSL 連線的伺服器解釋,例如 Apache 或 IIS 等 Web 伺服器或反向代理/Web 伺服器nginx。這是因為伺服器不「知道」此時要提供什麼證書,並且(通常)只會提供組態中定義的預設(或第一個)證書。此“預設”SSL 證書能是主題備用名稱 (SAN) 證書或通配符證書,這可能可以滿足您的需求。
伺服器名稱指示(SNI) 是解決多 SSL 網站問題的一種新替代方案(實際上是 SSL/TLS 協定的擴展,它允許客戶端將主機標頭指定為 SSL 會話的一部分),但受到老化瀏覽器的阻礙人口,並且僅在IE7+(也僅限Vista+)、Firefox 2+ 等中可用,因此如果您希望未受洗的大眾訪問您的SSL 網站,則可能不適合您的需求。
因為聽起來您正試圖成為某種託管提供者(這是一種完全不同的蠕蟲),所以我想從我的 ISP/colo 提供者處獲得盡可能大的 IP 區塊,或者代理ARP 或在配置過程中為虛擬機器實體分配一個公共IP 位址,並讓它們獲得自己的憑證等。如果每個虛擬機器都是多租戶的(即商品“共享託管”,您可以在虛擬機器上填充盡可能多的網站),那麼您可能可以實現SAN 憑證/IP 位址的組合,但請記住,您無法隨時向憑證新增/刪除網域:您必須再次執行憑證要求/簽署過程,他們可能會再次向您收取費用。
我也會非常小心地保護主機(「一台大型伺服器」),並假設您正在使用Hyper-V,請專門使用一個實體NIC(即不要將其作為虛擬網路包含在您的Hyper-V 配置中)來盒子的遠端管理,由真正的(硬體)防火牆保護,並建立某種類型的安全連接(如始終在線的 IPSec 隧道),最好是在單獨/有保證的互聯網連接*或至少是公共 IP 上用於防火牆ACL 目的和「客戶端」區塊之外的不同區塊服務品質。我還想看看你的伺服器是否支持智慧製造管理介面(DRAC 在戴爾中的說法)並將其與專用實體 NIC 一起用作管理網路的一部分,無法從公共 Internet 存取;這將允許您對盒子進行裸機訪問,以便您可以遠端重新啟動它、進行韌體升級等。
*這種專用連接要求在託管設施中可能不是問題,他們可能會採取自己的措施來確保/保證(透過 SLA)正常運行時間/頻寬/彈性。
答案2
我不是 Windows 用戶,但我可以為您提供正確的術語,您可以在 google 上搜尋並了解 Windows 是如何完成的。
您正在尋找的是“反向代理”,它將您的網站路由到虛擬機器的本地 IP 位址。就我而言,我使用 nginx 作為反向代理。我希望這會有所幫助,如果您需要其他任何信息,請告訴我們。