使用 SSL 一個應用程序的多個網站
我編寫了一個 ASP.NET MVC 應用程序,它允許使用者指定他們自己的自定義域。我已將 IIS 配置為將所有請求發送到預設網站,因此我不需要使用主機標頭。一切都很完美。唯一的問題是 SSL。
我知道這個問題已在許多論壇中被多次詢問,但答案通常相互衝突或以絕對的方式說話(這不能做到)。這對我來說不是一個真正的選擇。我在這裡尋找的是一些選擇;我對非正常持開放態度:)。
我看到了一些建議使用 ISA 伺服器作為 SSL 代理的建設性響應。有人知道更多嗎?或者有沒有人配置過這個並取得了成功?
基本上我想為我的使用者提供一種從應用程序請求 CSR 的方法,去購買和下載 SSL 證書,回到我的應用程序並上傳授權認證公司頒發的證書。
我想這樣做,而不必向想要在其站點上使用自定義域和 ssl 的客戶提供單獨的 IP 地址。這僅僅是因為我的應用程序託管在亞馬遜雲上,他們並不熱衷於給我一大塊 IP 地址。
我的應用程序可以託管在 IIS6 或 IIS7 上。
解決方案:感謝您對這些人的所有幫助。我當然沒有像現在這樣理解這個問題。我認為我現在的解決方案是生成萬用字元證書並強制我的客戶使用 clientname.someshareddomain.com 如果他們想要安全連接。對於根本不同意的客戶,我可能會通過對亞馬遜網路服務的 api 呼叫提供另一個彈性 IP 地址,在 IIS 中創建一個新網站並將其指向我的應用程序的根文件夾,然後以程式方式從中生成一個 CSR新網站。我將不得不與亞馬遜達成某種協議,給我一個像樣的 IP 地址塊。
很抱歉您不喜歡“您不能這樣做”的答案,但您無法做您想做的事。該技術只是不允許它以您想要的方式工作。
這就是為什麼。
HTTP 協議允許多個伺服器共享一個 IP 地址。它通過 HTTP/1.1 Host 標頭執行此操作:
Host: servername.example.com
SSL 握手發生在HTTP 握手發生之前。這意味著伺服器不知道根據客戶端想要的伺服器向客戶端提供什麼證書。
所以,盡你所能,但不能在一個 IP 地址上使用多個證書。無論您多麼努力,無論多麼努力,這都不是您的選擇。