Actuellement, j'utilise Apache 2.2.3 et CentOS 5.4 pour mes applications php (php fonctionnant sur 5.3.7) et l'application fonctionne sur HTTPS et avec le certificat Root CA.
Le problème est que nous avons rencontré des problèmes étranges avec IE9 (IE9 uniquement). Lorsque le navigateur IE9 soumet une demande HTTPS à notre serveur, il n'y a parfois aucune réponse HTTPS. Ce que j'ai remarqué, c'est qu'IE9 rafraîchira la page. Pour être plus précis, la page mentionnée est une page de connexion. Donc, lorsque j'entre un nom d'utilisateur et un mot de passe et que je soumets le formulaire, mais il n'y a pas de réponse et IE9 semble recharger à nouveau la même page de connexion. (avec nom d'utilisateur et mot de passe vierges)
Lors du traçage au niveau de l'application, je remarque que j'ai reçu le nom d'utilisateur et le mot de passe et l'application s'est terminée sans erreur.
Le principal mal de tête est qu'il ne peut pas être reproduit à chaque fois. Parfois, nous pouvons nous connecter sans aucun problème, mais parfois il y aura ledit problème mentionné ci-dessus.
Maintenant, notre entreprise a une équipe de réseau, des développeurs et d'autres équipes. Notre apache fonctionne sous un équilibreur de charge. Les gars du réseau affirment qu'ils ne modifient jamais les paramètres, le seul changement est notre application. Mais du point de vue des développeurs, les changements n'ont rien à voir avec le processus de connexion.
De mon point de vue, il semble qu'une fois que l'utilisateur a cliqué sur soumettre, et l'application (apache) a fait ce qu'elle fait en envoyant un HTML (réponse HTTPS), mais le HTML a en quelque sorte miraculeusement disparu dans le réseau. Je soupçonne qu'il y a quelque chose à voir avec le maintien de la connexion? L'agent de navigateur IE9 le gère probablement différemment et, d'une manière ou d'une autre, il considère que la connexion échoue et recharge la page pour une nouvelle tentative?
Mais de toute façon, j'ai remarqué les paramètres suivants dans Apache pour la connexion SSL:
SetEnvIf User-Agent ". MSIE. " \ Nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0
Vous ne savez pas comment nous pouvons configurer de manière à exclure IE9 et les versions ultérieures? Lorsque je fais une recherche, les paramètres ci-dessus consistent à résoudre un problème de longue date lorsque IE se connecte à Apache. Mais comme IE9 est assez récent, le problème est déjà résolu et que nous devons mettre à jour les paramètres?
J'espère que quelqu'un pourra faire la lumière sur ce sujet ..
la source
Réponses:
Très probablement, la configuration du serveur / réseau a un problème quelque part et n'est pas causée par des bizarreries IE9.
Tout d'abord, débarrassez-vous de l'ancienne configuration pré IE6:
SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0
et essayez simplement de la supprimer (sous toutes les formes). À moins que vous ne deviez prendre en charge IE5, ce que je doute que vous fassiez, auquel cas vous avez raison de changer l'expression régulière enMSIE [2-5]
L'équilibreur de charge et n'ayant pas de keepalive est probablement le problème. Je serais très méfiant vis-à-vis de l'équilibreur de charge et vérifierais exactement ce qui s'y passe en premier.
Un équilibreur de charge équilibrera généralement la charge entre deux ou plusieurs adresses IP (internes ou externes, cela n'a pas d'importance à ce stade).
Puis, n'ayant pas de connexion permanente sur les connexions entre les requêtes, l'ordinateur / navigateur client devra effectuer une négociation SSL pour chaque requête. Combinez cela avec des paramètres de lenteur et de délai d'attente bas et nous pouvons obtenir des problèmes de non-concordance des certificats SSL et IE sera probablement libéré en raison d'une configuration de sécurité stricte. Je n'ai pas enquêté exactement si IE9 n'a que ce trait. Je soupçonne que d'autres navigateurs le font aussi et le gèrent différemment.
Si vous utilisez SSL, vous devez avoir KeepAlive , car cela rendra le site beaucoup plus rapide et n'aura pas à passer par la négociation SSL encore et encore, échouant ainsi car l'équilibreur de charge ne conserve pas la session sur le même serveur pendant la durée de vie du visiteur. .
Si votre application est interne (sur un intranet), votre équilibreur de charge vous envoie des adresses IP au hasard et SSL a besoin que ce soit le même par connexion.
Si ce n'est pas sur un intranet, cela pourrait être vrai, je ne sais pas comment votre réseau est configuré, mais vous devriez d'abord vérifier cela. Désactivez l'équilibreur de charge et voyez si le problème existe. et mettre définitivement en vie.
http://httpd.apache.org/docs/2.2/mod/core.html#keepalive
Je vérifierais également si vous avez une configuration DNS inversée. S'il pointe vers l'équilibreur de charge ou le serveur derrière l'équilibreur de charge ou autre.
Testez votre connexion et analysez vos en-têtes, si externe utilisez quelque chose comme redbot.org ou webpagetest.org pour vérifier quels en-têtes sont envoyés. Vous pouvez également utiliser quelque chose comme un violoneux
la source