服務(wù)器多站點(diǎn)多域名HTTPS實(shí)現(xiàn) |
假設(shè)有這樣一個(gè)場(chǎng)景,我們有多個(gè)站點(diǎn)(例如site1.example.com,site2.example.com和site3.example.com)綁定到同一個(gè)IP:PORT,并區(qū)分不同的主機(jī)頭。我們?yōu)槊恳粋€(gè)SSL站點(diǎn)申請(qǐng)并安裝了證書(shū)。在瀏覽網(wǎng)站時(shí),用戶仍看到證書(shū)不匹配的錯(cuò)誤。 IIS當(dāng)一個(gè)https的請(qǐng)求到達(dá)IIS服務(wù)器時(shí),https請(qǐng)求為加密狀態(tài),需要拿到相應(yīng)的服務(wù)器證書(shū)解密請(qǐng)求。由于每個(gè)站點(diǎn)對(duì)應(yīng)的證書(shū)不同,服務(wù)器需要通過(guò)請(qǐng)求中不同的主機(jī)頭來(lái)判斷需要用哪個(gè)證書(shū)解密,然而主機(jī)頭作為請(qǐng)求的一部分也被加密。最終IIS只好使用第一個(gè)綁定到該IP:PORT的站點(diǎn)證書(shū)解密請(qǐng)求,從而有可能造成對(duì)于其他站點(diǎn)的請(qǐng)求失敗而報(bào)錯(cuò)。 解決方案
SNI開(kāi)啟方式請(qǐng)參考http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-server-name-indication-sni-ssl-scalability |