2011-08-01 54 views
4

我有一個運行在nginx和php-fpm上的drupal站點,haproxy在多個服務器之間進行平衡。Chrome和Firefox在某個站點上自動重定向到https

我有兩個爲haproxy設置的服務:http和https。

如果我去http://subdomain.domain.com,它工作正常。
如果我去https://subdomain.domain.com,它也可以正常工作。 如果我然後回到http,它現在重定向到https。這發生在Firefox和Chrome中,但不在IE中。

如果知道它存在,是否有一些設置會自動重定向到https?也許如果設置了安全標頭?

我試着看LiveHTTPHeaders,但它只顯示在這一點上的https部分。
我試圖尋找在Chrome和它說的:

t=1312233405229 [st= 0] +REQUEST_ALIVE        [dt=192] 
t=1312233405229 [st= 0]  URL_REQUEST_START_JOB     [dt= 0] 
          --> load_flags = 1114241 (ENABLE_LOAD_TIMING | MAIN_FRAME | VALIDATE_CACHE | VERIFY_EV_CERT) 
          --> method = "GET"     
          --> priority = 0      
          --> url = "http://subdomain.domain.com/" 
t=1312233405229 [st= 0] +URL_REQUEST_START_JOB     [dt= 0] 
          --> load_flags = 1114241 (ENABLE_LOAD_TIMING | MAIN_FRAME | VALIDATE_CACHE | VERIFY_EV_CERT) 
          --> method = "GET"     
          --> priority = 0      
          --> url = "http://subdomain.domain.com/" 
t=1312233405229 [st= 0]  URL_REQUEST_REDIRECTED    
           --> location = "https://subdomain.domain.com/" 

它似乎是在做一個重定向,但沒有說爲什麼。

我試着用Wireshark嗅探,但無法做出任何意義,因爲我無法獲得SSL解密工作(我有密鑰)。

+0

我已經知道了這一點。我在nginx中有一個設置: add_header Strict-Transport-Security「max-age = 7200」; 這是一個由chrome和firefox 4支持的新功能:http://www.chromium.org/sts – Russ

+1

Russ,如果您還在附近:我將此問題標記爲移至ServerFault,它更適合於話題;你應該將你的評論寫成答案並接受它! – Stefano

+1

謝謝。我不認爲我之前能夠做到這一點,因爲這是一個新的方法,但是做到了。 – Russ

回答

5

我已經想通了。我在nginx中有一個設置:add_header Strict-Transport-Security「max-age = 7200」;這是一個由Chrome和Firefox 4支持的新功能:chromium.org/sts

+0

要忘記Firefox中的HTTPS偏好,請清除「歷史記錄/清除最近的歷史記錄」中的「網站偏好設置」。 – Onlyjob