Impostazioni nokeepalive SSL di IE9 e apache


8

Attualmente sto usando Apache 2.2.3 e CentOS 5.4 per le mie applicazioni php (php in esecuzione su 5.3.7) e l'applicazione è in esecuzione su HTTPS e con certificato CA radice.

Il problema è che abbiamo riscontrato alcuni strani problemi con IE9 (solo IE9). Quando il browser IE9 invia una richiesta HTTPS al nostro server, a volte non c'è risposta HTTPS. Quello che ho notato è che IE9 aggiornerà la pagina. Per essere più specifici, la pagina menzionata è una pagina di accesso. Quindi, quando inserisco username e password e invio il modulo, ma non c'è risposta e IE9 sembra ricaricare di nuovo la stessa pagina di accesso. (con nome utente e password vuoti)

Quando si traccia dal livello dell'applicazione, noto che ho ricevuto il nome utente e la password e l'applicazione è terminata senza errori.

Il principale mal di testa è che non può essere riprodotto ogni volta. A volte possiamo accedere senza problemi, ma a volte avrà il problema sopra menzionato.

Ora la nostra azienda ha team di rete, sviluppatori e altri team. Il nostro apache è in esecuzione con un bilanciamento del carico. I ragazzi della rete sostengono che non cambiano mai alcuna impostazione, l'unica modifica è la nostra applicazione. Ma dal punto di vista degli sviluppatori le modifiche non hanno nulla a che fare con il processo di accesso.

Dal mio punto di vista sembra che una volta che l'utente fa clic su Invia e l'applicazione (apache) ha fatto ciò che ha fatto inviando un HTML (risposta HTTPS), ma l'HTML è in qualche modo miracolosamente scomparso nella rete. Sospetto che ci sia qualcosa a che fare con la connessione keep-alive? Probabilmente l'agente browser IE9 lo gestisce in modo diverso, e in qualche modo ritiene che la connessione fallisca e ricarichi la pagina per un nuovo tentativo?

Ma comunque, ho notato le seguenti impostazioni in Apache per la connessione SSL:

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

Non sei sicuro di come configurare in modo da escludere IE9 e versioni successive? Quando eseguo una ricerca, le impostazioni di cui sopra sono per risolvere alcuni problemi di vecchia data quando IE si connette con Apache. Ma poiché IE9 è abbastanza nuovo, probabilmente il problema è già stato risolto e che dobbiamo aggiornare le impostazioni?

Spero che qualcuno possa far luce su questo ..



blogs.msdn.com/b/ieinternals/archive/2011/03/26/… Trovato questo link, che ha suggerito di apportare la modifica a BrowserMatch ". * MSIE [2-5] \ .. *" \ nokeepalive ssl-unclean -shutdown \ downgrade-1.0 force-response-1.0 ma avrà bisogno di tempo per provarlo. Nel frattempo non sono sicuro che qualcuno abbia problemi simili e cosa faccia per risolverlo ..
Forestclown,

Cosa ti fa sospettare che il keep-alive sia collegato? È possibile eseguire un'acquisizione sul traffico di rete per confermare?
Shane Madden,

È solo un'ipotesi selvaggia perché succede solo in IE9, e per quanto riguarda l'installazione di Apache attualmente è l'unica installazione che ho notato che fa qualcosa di specifico per IE ...
forestclown

Hai mai risolto questo? Qual è stata la soluzione?

Risposte:


3

Molto probabilmente la configurazione del server / della rete ha un problema da qualche parte e non è causata da eventuali stranezze di IE9.

Prima di tutto, sbarazzati dell'antica configurazione pre IE6: SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0e prova a correre senza farlo (in qualsiasi forma). A meno che non sia necessario supportare IE5, che dubito in tal caso, nel qual caso è corretto cambiare regexMSIE [2-5]

Il bilanciamento del carico e non avere keepalive è probabilmente il problema. Sarei molto sospettoso del bilanciamento del carico e verificherei esattamente cosa sta succedendo lì prima.

Un bilanciamento del carico di solito "bilancia il carico" tra due o più indirizzi IP (interni o esterni, non importa a questo punto).

Quindi, non avendo keepalive sulle connessioni tra le richieste, il computer client / browser dovrà eseguire la negoziazione SSL per ogni richiesta. Combina questo con le impostazioni di lentezza e timeout bassi e possiamo ottenere problemi di mancata corrispondenza del certificato SSL e IE probabilmente salterà a causa della rigida configurazione della sicurezza. Non ho studiato esattamente se IE9 ha solo questa caratteristica. Sospetterei che anche altri browser lo facciano e lo tratterebbero diversamente.

Se si utilizza SSL, è necessario mantenere KeepAlive in quanto renderà il sito molto più veloce e non sarà necessario ripetere la negoziazione SSL più e più volte, in tal modo perché il bilanciamento del carico non mantiene la sessione sullo stesso server durante la vita del visitatore .

Se l'applicazione è interna (su una rete intranet), il bilanciamento del carico salta casualmente gli indirizzi IP su di te e SSL ha bisogno che sia lo stesso per connessione.

Se non si trova su una rete Intranet, lo stesso potrebbe essere vero, non so come sia configurata la tua rete, ma dovresti prima verificarla. Disabilitare il bilanciamento del carico e vedere se il problema esiste. e sicuramente rimani in vita.

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

Verificherei anche se hai trovato la configurazione DNS inversa. Se punta al bilanciamento del carico o al server dietro il bilanciamento del carico o cosa no.

Metti alla prova la tua connessione e analizza le tue intestazioni, se esterno usa qualcosa come redbot.org o webpagetest.org per verificare quali intestazioni vengono inviate. Inoltre puoi usare qualcosa come il violinista


1
ssl-unclean-shutdown è ancora richiesto per IE> = 6 alexmeyer.com/linux/apachekeepalive.html
user2299634
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.