2012-03-06 80 views
3

我有一個負載均衡器偵聽端口80和443,但由於安全策略,負載均衡器和Web服務器之間的流量必須加密。我試圖從http生成一個重定向到https,但通常的方法不起作用,可以假定的是,因爲IIS無法區分http vs https的原始請求。這是因爲當請求到達Web服務器時,它已經被加密,並且已經被加密並且在端口443處。HTTP到HTTPS重定向到端口443上的負載均衡器後面

現在我正在使用帶有mods的重寫模塊到web.config,重定向工作正常 - > LB-> 80流量,但不適用於80-> LB-> 443流量。

這裏是我的web.config:

<?xml version="1.0" encoding="UTF-8"?> 
    <configuration> 
    <system.webServer> 
     <rewrite> 
     <rules> 
     <rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
      </conditions> 
      <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" /> 
     </rule> 
     </rules> 
     </rewrite> 
    </system.webServer> 
    </configuration> 

注意,這是我喜歡的web.config文件的解決方案(如果它可以進行修改,以工作爲80-> LB-> 443)是重定向作品對於非ASP.NET頁面。

任何想法?

回答

0

我相信你可以設置負載均衡器來執行從http到https的重定向。您還可以設置負載均衡器來發送額外的HTTP標頭或CGI變量,以指示安全與非安全。

相關問題