Configurações do IE9 e apache SSL nokeepalive

8

Atualmente, estou usando o Apache 2.2.3 e o CentOS 5.4 para meus aplicativos php (php executando no 5.3.7) e o aplicativo está executando no HTTPS e com certificado CA raiz.

O problema é que estamos enfrentando alguns problemas estranhos com o IE9 (somente IE9). Quando o navegador IE9 envia uma solicitação HTTPS ao nosso servidor, às vezes não há resposta HTTPS. O que eu notei é que o IE9 atualiza a página. Para ser mais específico, a página mencionada é uma página de login. Então, quando eu digito o nome de usuário e a senha e envio o formulário, mas não há resposta e o IE9 parece recarregar a mesma página de login novamente. (com nome de usuário e senha em branco)

Ao rastrear no nível do aplicativo, percebo que recebi o nome de usuário e a senha e o aplicativo foi finalizado sem erros.

A principal dor de cabeça é que não pode ser reproduzida todas as vezes. Às vezes, podemos fazer o login sem problemas, mas às vezes o problema mencionado acima.

Agora nossa empresa tem equipe de rede, desenvolvedores e outras equipes. Nosso apache está sendo executado em um balanceador de carga. O pessoal da rede afirma que nunca altera nenhuma configuração, a única alteração é a nossa aplicação. Mas, do ponto de vista dos desenvolvedores, as alterações não têm nada a ver com o processo de login.

Do meu ponto de vista, parece que uma vez que o usuário clica em enviar, e o aplicativo (apache) fez o que faz enviando um HTML (resposta HTTPS), mas o HTML desapareceu milagrosamente na rede. Eu suspeito que há algo a ver com a conexão keep-alive? Provavelmente, o agente do navegador IE9 lida com isso de maneira diferente e, de alguma forma, considera que a conexão falha e recarrega a página para uma nova tentativa?

De qualquer forma, observei as seguintes configurações no Apache para conexão SSL:

SetEnvIf User-Agent ". MSIE. " \ Nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0

Não sabe ao certo como podemos configurar de uma maneira que exclua o IE9 e superior? Quando faço uma pesquisa, as configurações acima são para corrigir algum problema de longa data quando o IE está se conectando ao Apache. Mas como o IE9 é totalmente novo, provavelmente o problema já foi resolvido e precisamos atualizar as configurações?

Espero que alguém possa lançar alguma luz sobre isso ..

floresta
fonte
Encontrado este link blogs.msdn.com/b/ieinternals/archive/2011/03/26/…
forestclown
blogs.msdn.com/b/ieinternals/archive/2011/03/26/… Encontrei este link, que sugeria fazer a alteração no BrowserMatch ". * MSIE [2-5] \ .. *" \ nokeepalive ssl-unclean -shutdown \ downgrade-1.0 force-response-1.0, mas precisará de tempo para testá-lo. Enquanto isso não tenho certeza se alguém também experimentando problemas semelhantes, e o que fazer para resolvê-lo ..
forestclown
O que faz você suspeitar que o keep-alive está relacionado? Você pode realizar uma captura no tráfego de rede para confirmar?
Shane Madden
É apenas um palpite porque acontece apenas em IE9, e com relação ao Apache configuração atualmente que é a única configuração que tenho notado que faz algo especificamente para IE ...
forestclown
Você já resolveu isso? Qual foi a solução?

Respostas:

3

Provavelmente, a configuração do servidor / rede tem um problema em algum lugar e não é causada por nenhuma peculiaridade do IE9.

Primeiro, livre-se da antiga configuração anterior ao IE6: SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0e tente executar sem isso (de qualquer forma). A menos que você precise oferecer suporte ao IE5, o que duvido que seja, nesse caso, você está correto em alterar a regex paraMSIE [2-5]

O balanceador de carga e a ausência de manutenção da atividade provavelmente é o problema. Eu desconfiaria muito do balanceador de carga e verificaria exatamente o que está acontecendo primeiro.

Um balanceador de carga geralmente 'equilibra a carga' entre dois ou mais endereços IP (interno ou externo, não importa neste momento).

Por não ter manutenção permanente das conexões entre solicitações, o computador / navegador cliente precisará executar a negociação SSL para cada solicitação. Combine isso com as configurações de lentidão e baixo tempo limite e podemos obter problemas de incompatibilidade de certificados SSL e o IE provavelmente será liberado por causa de uma configuração estrita de segurança. Não investiguei exatamente se o IE9 tem apenas essa característica. Eu suspeitaria que outros navegadores também fazem isso e lidam com isso de maneira diferente.

Se você estiver usando SSL, deverá manter o KeepAlive, pois isso tornará o site muito mais rápido e não precisará passar pela Negociação SSL repetidamente, falhando, pois o balanceador de carga não manterá a sessão no mesmo servidor durante a vida útil do visitante. .

Se seu aplicativo for interno (em uma intranet), seu balanceador de carga estará saltando aleatoriamente endereços IP para você e o SSL precisará ser o mesmo por conexão.

Se não estiver em uma intranet, o mesmo poderia ser verdade, não sei como sua rede está configurada, mas você deve verificar isso primeiro. Desative o balanceador de carga e veja se o problema existe. e definitivamente colocar manter vivo.

http://httpd.apache.org/docs/2.2/mod/core.html#keepalive

Gostaria também de verificar se você tem a configuração reversa do DNS. Se estiver apontando para o balanceador de carga ou o servidor atrás do balanceador de carga ou não.

Teste sua conexão e analise seus cabeçalhos, se externo usar algo como redbot.org ou webpagetest.org para verificar quais cabeçalhos são enviados. Além disso, você pode usar algo como violinista

Anthony Hatzopoulos
fonte
1
ssl-unclean-shutdown ainda é necessário para o IE> = 6 alexmeyer.com/linux/apachekeepalive.html
user2299634