我有一个在nginx和php-fpm上运行的drupal站点,在多个服务器之间进行haproxy平衡。
我为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 :(得分:5)
我已经弄明白了。我在nginx中有一个设置:add_header Strict-Transport-Security“max-age = 7200”;这是chrome和firefox 4支持的新功能:chromium.org/sts