我們正在嘗試設置具有多個證書的HTTPS。我們取得了一些有限的成功,但我們得到了一些我無法理解的結果...軟件NLB'd IIS7集羣上的HTTPS的多個證書
基本上我們在NLB(10.0.51.51和10.0.51.52)上有兩臺服務器,並且分配了兩個IP到我們的NLB(10.0.51.2和10.0.51.4),並且我們有IIS在這兩個IP上用不同的通配符證書進行監聽(爲了避免公開IP讓我們假設A:443路由到10.0.51.2:443和B:443路線到10.0.51.4:443)。我們還有一臺使用端口地址轉換的Cisco路由器將端口443從兩個外部IP路由到這些內部NLB IP。
奇怪的是,如果我們要求A:443或B:443,但如果你在內部使用10.0.51.51:443,10.0.51.52:443,10.0.51.2:443或10.0.51.4, 443你總是獲得相同的SSL證書。這個證書過去分配給*:443,但我們確定在IIS中沒有定義任何*綁定。
當我運行「的netsh HTTP顯示的sslcert」修剪出所有不相關的東西后,我得到:
IP:port : 0.0.0.0:443
Certificate Hash : <Removed: Cert 1>
IP:port : 10.0.51.2:446
Certificate Hash : <Removed: Cert 3 - Another site>
IP:port : 10.0.51.3:446
Certificate Hash : <Removed: Cert 3 - Another site>
IP:port : 10.0.51.4:443
Certificate Hash : <Removed: Cert 2>
告訴我,*結合仍然在那裏,這是一個有點怪異,但我看不出爲什麼會阻止對方工作(或者更奇怪的是,爲什麼通過路由器的請求會起作用)。
它讓我想知道它實際上是否將請求視爲機器的IP而不是NLB IP,但不幸的是,我們的開發環境只是一臺服務器,它減少了我可以對此嘗試/錯誤的數量我所能測試的只是一個現場環境),而沒有說服管理層爲測試環境購買更多服務器 - 這是我正在嘗試的。
沒有人有任何的想法:
- 爲什麼有內部和之間通過路由器有區別嗎?
- 爲什麼內部請求得到錯誤的證書?
- 我該如何解決這個問題,以便我們在雙方都能得到相同的行爲?