2012-02-06 74 views
2

在我們的生產環境中,網站在HTTPS下運行,SSL以負載均衡器終止並將流量作爲HTTP傳遞到IIS服務器。使用IIS Express模擬SSL終止

網站內部有各種內部和第三方組件和控件,其中一些使用類似於.NET System.Web.HttpRequest.IsSecureConnection屬性的機制,該屬性僅查詢HTTPS服務器變量以返回其結果。由於從負載均衡器到Web服務器的連接是HTTP,因此這些方法會返回不正確的值並導致某些組件失敗。例如,組件可能會將用戶指向HTTP URL而不是HTTPS用於JavaScript文件,並導致瀏覽器不加載混合內容。

爲了調試這些組件並開發解決方法,我需要在我的開發機器上重新創建這個場景。我的問題是有沒有一種簡單的方法來模擬Visual Studio/IIS Express開發環境的外部終止SSL連接?

+0

爲什麼不在iis上設置自簽名ssl? http://stackoverflow.com/questions/5521305/iis-express-getting-ssl-to-work – Aristos 2012-02-06 13:10:27

+0

因爲這會給任何查詢_HTTPS_服務器變量的錯誤值。我需要模擬將關閉的現場環境。 – SilverlightFox 2012-02-06 14:14:56

+0

對不起,誤會。 - 路過的流量是通過重定向完成的?或者是全部硬件?你可以設置負載平衡器來傳遞https嗎? – Aristos 2012-02-06 15:18:51

回答

2

我找到了使用Port Forwarding Wizard的方法。

創建單個TCP映射,將偵聽端口設置爲空閒端口(例如443),目標爲帶有Web服務器端口(例如80)的本地主機。將所有其他設置保留爲默認設置,但進入SSL加密並在CA Center中生成根密鑰和證書。完成後,選擇啓用SSL加密並選擇服務器。生成一個私鑰文件,Cert Req文件和一個證書,然後bob的你的叔叔,你可以終止SSL轉發到你本地的IIS Express服務器:只需開始你的端口映射,然後用你的網絡瀏覽器連接到https://localhost(指定端口,如果它不是443)。

+0

感謝您的提示 - 它的作品就像一個魅力。請記住下載[專業版](http://www.port-forwarding.net/port-forwarding-software/port-forward.html),因爲SSL不包含在可直接從您的鏈接中獲得的版本中。 – jmosbech 2012-02-17 14:44:24

+0

謝謝,鏈接已更新。 – SilverlightFox 2012-02-20 14:07:56